(1)概念:当程序遇到问题时不让程序结束,而越过错误继续向下执行
(2)错误处理语句 :
① try….except….else
格式:
try:
语句t
except 错误码 as e:
语句1
except 错误码 as e:
语句2
else:
语句e (注意:else语句可有可无)
逻辑:检测try语句块里面的错误,让except语句捕获错误信息并处理
1.如果当try”语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应“语句“
2.如果当try”语句t”执行出现错误,没有匹配的异常,错误提交到上一层的try语句
3.如果当try”语句t”执行没有出现错误,执行else下面的语句
例: try:
print(3/0)
except NameError as e:
print("无变量")
except ZeroDivisionError as e:
print("除数为0")
else:
print("代码没有问题")
② 使用except而不使用任何的错误类型
try:
语句
except:
语句
③使用except带着多种异常
try:
语句
except( error1 ,error2 ):
语句
④ try….except….finally finally语句必然执行
格式:
try:
语句t
except 错误码 as e:
语句1
except 错误码 as e:
语句2
finally:
语句r
⑤所有的错误都继承自BaseException,父类错误覆盖子类错误
⑥跨越多层调用,main调用了fun2,fun2调用fun1,fun1出现错误,可以捕获到错误
def func1(num):
print(1/num)
def func2(num):
func1
def main():
func(0)
try:
main()
except ZeroDixisionError as e:
print(" ")
⑦断言
格式:
assert(div!=0),"div不能为0"
逻辑:断言”div不能为0”
报错类型为 断言内容