我想知道 Python 中是否有一个标准机制可以满足这个用例:
try:
do_a()
if something_happens():
raise DelayedException # is really only raised after do_b()
do_b()
except DelayedException as de:
# handle de after the entire try/except block completed
显然,我可以将异常信息存储在变量中以便稍后处理,但我想知道Python(3.x 如果有区别的话)是否内置了这样的机制。
编辑: 为了澄清,在我的用例中,异常处理需要 do_b() 的结果。
do_b()
引发了自己的异常,您希望发生什么? - Scott Hunterdo_something()
包装在一个 try-finally 块中(并在 finally 块中包含do_b()
)不就可以实现这个功能吗? - dhketry
语句中再嵌套一个try
,并将finally
语句附加到新的try
上,否则我认为这会造成相当混乱的代码结构。 - user2357112