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"之外获得结果或需要处理的异常。

     

posted @ 2025-05-04 09:51  CJTARRR  阅读(71)  评论(0)    收藏  举报