2019-05-05_day14_异常捕获

day_14_异常处理

1.异常捕获

正常情况下程序出现异常,程序会直接崩溃,不能接着往后执行。异常捕获就是为了让程序出现异常的时候不崩溃,自己处理异常。

使用异常捕获的前提:无法自己控制(例如,客户的输入)

语法

1) try-except : 能捕获除了语法错误外的所有错误

try:
    代码块1
except:
    代码块2

执行过程

先执行代码块1,在执行代码块1的过程中如果出现异常,程序不崩溃直接执行代码块2。如果没有出现异常,不执行代码块2直接执行其他语句

2)

try:
    代码段1
except 错误类型:
    代码段2

执行过程

先执行代码段1,如果在执行代码段1的过程中出现异常,检查出现的异常类型是否和except后面的异常类型是否一致,如果一致程序不崩溃,直接执行代码段2;如果不一致,程序直接崩溃。如果没有异常,直接执行后面其它语句。

3)捕获多种异常

try:
    代码段1
except (异常类型1,异常类型2, ...):
    代码段2

4)

try:
    代码段1
except 异常类型1:
    代码段2
except 异常类型2:
    代码段3
except 异常类型3:
    代码段4

5)

上述的4种结构的最后都可以加上一个finally: 代码块;不管try里面的代码有没有异常,异常有没有被捕获,finally后面的代码都会执行。一般可以在这个地方做一些数据的保存和备份操作。

抛出异常:主动让程序崩溃

1)语法

raise 异常类型

注意:异常类型可以是系统自带的,也可以是程序员自定义(要求异常类型必须是Exception的子类)

你可能感兴趣的:(2019-05-05_day14_异常捕获)