1、错误(事件)
由于逻辑或语法等导致程序无法正常的执行
2、异常(状态)
程序出错后的标识
3、异常处理
1)try-except语句
try:
可能发生异常的语句
except 错误类型1 [as 变量1]:
异常处理语句1
except (错误类型2,错误类型3):
异常处理语句2
...
except:
异常处理语句other
else:
未发生异常的语句
finally:
最终语句
注意:
as 子句用于绑定错误对象的变量,可以省略
except子句可以有一个或多个,但至少一个
else语句最多有一个,可以省略
finally子句最多只能有一个,可以省略
2)try-finally
try:
可能发生异常的语句
finally:
最终语句
注意:
无论异常是否发生,finally子句都会被执行
该语句不会改变程序的(正常/异常)状态
finally子句不可以省略,一定不存在except子句
4、raise语句:触发一个错误,让程序进入异常
raise 异常类型 (异常描述)
5、assert语句(断言语句)
assert 真值表达式,错误数据(通常是字符串)
当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态
6、为什么要用异常处理机制
在调用程序较深时,向主调函数传递错误信息需要层层的return,返回比较麻烦,所以用异常处理机制