try:
raise KeyError()
except KeyError:
print "Caught KeyError"
raise Exception()
except Exception:
print "Caught Exception"
正如预期的那样,第5行引发的 Exception()
在最终的 except Exception
子句中没有被捕获。为了在 except KeyError
块内捕获异常,我必须添加另一个 try...except
,并复制最终的 except Exception
逻辑:
try:
raise KeyError()
except KeyError:
print "Caught KeyError"
try:
raise Exception()
except Exception:
print "Caught Exception"
except Exception:
print "Caught Exception"
在Python中,是否可以像我试图做的那样将执行流程传递到最终的
except Exception
块?如果无法实现,是否有减少逻辑重复的策略?
except
子句只捕获在try
中抛出的错误;否则,如果需要重新引发错误,则无法实现。 - jonrsharperaise
,无需其他任何代码。可能适用于这种情况,也可能不适用。从你的代码中无法判断。 - JL Peyret