关于return和finally的执行顺序

关于return和finally的执行顺序

前段时间的考试涉及到这个题目,做一下记录。

def test_try():
    try:
        print("start")
        # raise KeyError
        return 1
    except KeyError as e:
        print("key error")
        return 2
    # else:
    #     print("other")
    #     return 3
    finally:
        print("finally")
        return 4

result = test_try()
print(result)

执行结果

start
finally
4

但如果把finally中的return语句注释掉,则结果如下:

start
finally
1
如果finally中有return语句, 它返回finally里的return语句,
如果finally没有return语句, 它就会返回前面调用的return语句
posted @   笑着的程序员  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示