捕获多个异常
def test1(): try: print('hello') print(name) 1/0 except ZeroDivisionError as e: print(e) except NameError as e: print(e) test1() 结果: hello name 'name' is not defined Process finished with exit code 0
try有两个错误,也没有返回两个错误原因。那捕获多个异常有什么用呢?
视频里说‘当except代码块有多个的时候,当捕获到第一个到时候,就不会往下捕获。’这句话怎么理解呢?不是刚好和捕获多个异常是矛盾的吗?
9
收起
正在回答
1回答
同学,你好!
1、捕获多个异常并不是说会返回两个错误原因。多个异常是指except后的Error异常名
程序在执行到第4行代码时会报错,捕获到的异常不符合第一个except,就会去执行第二个except,匹配到对应的异常后输出相应的异常信息,输出异常信息后程序就结束了,代码不会再继续执行,因此不会对第二个错误进行捕获异常。
2、例如代码先报的是ZeroDivisionError错误,第一个except就会捕获到,不会再继续执行except继续捕获,若第一个except捕获不到就会继续向后执行第二个except
祝学习愉快!
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星