【发布时间】:2014-12-16 19:05:47
【问题描述】:
为什么这不起作用?
try:
1/0
except ZeroDivisionError as e:
e.message += ', you fool!'
raise
不使用修改后的消息,即使它保留在异常实例上。以上是否有工作模式?行为应该类似于我当前的以下解决方法:
try:
1/0
except ZeroDivisionError as e:
args = e.args
if not args:
arg0 = ''
else:
arg0 = args[0]
arg0 += ', you fool!'
e.args = (arg0,) + args[1:]
raise
我知道 exception chaining 在 python3 中,它看起来不错,但不幸的是在 python2 中不起作用。那么在 python2 中重新引发异常的常用方法是什么?
注意:由于here 提到的警告和注意事项,我不想挖掘回溯并创建新异常,而是重新引发现有异常 实例。
【问题讨论】: