python 中 try except 带有return的用法


def exe_try():
    try:
        print('code running')
        raise KeyError
    except KeyError as ex:
        print('key error')
        return 2
    else:
        print('other error')
        return 3
    finally:
        print('finally')
        return 4

if __name__ == "__main__":
    ret = exe_try()
    print(ret)

程序的运行结果为:

code running
key error
finally
4

最后返回值是4,这是因为(1)try finally语句一定会执行finally中的语句,(2)return并不会真正的返回,而是将return语句的表达式执行后,再存到一个临时栈当中,

当执行finally表达式中的语句时,会将4压入到栈中,所以最后的返回值是4.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM