try:
raise KeyError()
except KeyError:
print "Caught KeyError"
raise Exception()
except Exception:
print "Caught Exception"
正如预期的那样,在最后的Exception()
条款中没有记录第5行的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
块,就像我想要做的那样?如果没有,是否有减少逻辑重复的策略?
答案 0 :(得分:6)
您可以添加另一个try
嵌套级别:
try:
try:
raise KeyError()
except KeyError:
print "Caught KeyError"
raise Exception()
except Exception:
print "Caught Exception"