try:
#error code
except Exception as e:
print 'error',e
raise miexp("malicious error")
#userdefined exception, miexp
finally:
print 'finally'为什么输出采用以下格式?
输出:
error
finally
malicious error实际上,我的预期是:
error
malicious error
finally为什么会这样呢?
发布于 2015-12-13 16:27:43
miexp("malicious error")未被处理,因此它将结束程序的执行。另一方面,保证执行finally块。
为了确保这一点,Python在实际引发异常之前执行finally块。从documentation
如果在任何子句中发生异常但未处理,则会临时保存该异常。执行finally子句。如果存在已保存的异常,则在finally子句的末尾重新引发该异常。
https://stackoverflow.com/questions/34249269
复制相似问题