Python try except finally
try:
...
except Exception as e:
...
finally:
...
"except"尝试捕获try代码块中发生的异常。
"finally"不论try和except中的代码块是否发生异常,都会执行。
-
finally代码块执行时机
finally代码块会在"退出当前函数或者代码块的执行栈"之前执行。 -
finally特点
1.不论finally前的代码是return、continue、break还是抛出异常,其代码块都会执行。
2.finally中return或抛出异常,会覆盖前面代码的结果和异常。
即,只要finally中return或发生异常,前面代码的结果和异常都会丢失,而返回finally代码块中的结果或传播finally代码块中的异常。
所以不建议在finally中return或主动抛出异常,以正确地"try except finally"之外获得结果或需要处理的异常。
浙公网安备 33010602011771号