文章目录
- 捕获异常
- 捕获常规异常
- 捕获指定异常
- 捕获多个异常
- else语法
- finally语法
- 异常的传递
捕获异常
假设某处可能会出现异常,提前做好准备。
捕获常规异常
所有的异常都会被捕获,不指定异常。
语法:
try:
可能出错的代码
except:
出现异常后的处理
或
try:
代码
except Exception as e:
处理
捕获指定异常
指定捕获某种异常,其他异常不会捕获。
语法:
try:
代码
except 异常类型1 as 异常对象别名
处理
except 异常类型2 as 异常对象别名
处理
捕获多个异常
try:
代码
except (异常类别1, 异常类别2...):
处理
else语法
else表示如果没有出现异常时,执行的代码。
try:
代码
except:
异常处理
else:
没有异常的处理
finally语法
无论有无异常都会执行的代码。
try:
代码
except:
异常处理
finally:
无论有无异常都会执行的
异常的传递
当有多层嵌套的函数调用时,若内层函数出现了异常,可以由任意一个外层的函数进行捕获,在高层进行捕获。
若所有函数都没有捕获异常,则程序会报错。
def F1():
出现异常的代码# F1没有捕获异常
def F2():
F1()# F2没有捕获异常
def F3():
try:
F2()# 对内层的异常进行捕获
except:
异常处理