最佳答案
我知道,如果我想重新引发异常,我只需在相应的 except
块中使用没有参数的 raise
。但是如果给出一个嵌套的表达式
try:
something()
except SomeError as e:
try:
plan_B()
except AlsoFailsError:
raise e # I'd like to raise the SomeError as if plan_B()
# didn't raise the AlsoFailsError
如何在不破坏堆栈跟踪的情况下重新引发 SomeError
?在这种情况下,单独的 raise
将重新提高更近的 AlsoFailsError
。或者我如何重构我的代码以避免这个问题?