在以下代码中,执行后会报出“During handling of the above exception, another exception occurred:”
x = 2
y = 0
try:
result = x / y
except ZeroDivisionError:
raise ValueError('raise in exception clause')
print("=== division by zero!")
else:
print("result is", result)
finally:
raise ValueError('raise in finally clause')
print("executing finally clause")
“During handling of the above exception, another exception occurred:”是什么意思?
执行下代码,可知是因为后续分支(比如上code中except或finally分支,比如下code中except分支)执行的代码又出错了。
x = 2
y = 0
try:
result = x / y
except ZeroDivisionError:
print('这是第一个except')
result = x / y
输出有:
During handling of the above exception, another exception occurred:
加入新的try...except...避免该错误,如下:
x = 2
y = 0
try:
result = x / y
except ZeroDivisionError:
try:
print("这是第一个except")
result = x / y
except Exception as e:
print("这是第二个except")
print(repr(e))
顺利执行,不报错“During handling of the above exception, another exception occurred:”,输出为:
这是第一个except
这是第二个except
ZeroDivisionError('division by zero')