1. 程式人生 > >異常處理中try,else,finally含有return的情況解析

異常處理中try,else,finally含有return的情況解析

直接 若有 函數 pan 到你 異常 fin 運行 但是

直接看代碼,拿到你的py下運行測試一下就 明白了.

例一:
    def f():
        try:
            print(1)
            return 3
        finally:
            print(2)
            return 0
    print(f())    #120   若註釋掉finally內的return  結果為123
    #解釋-----一個函數只會有一個返回值,若try和finally同時存在的話,finally會覆蓋掉try的return並執行,所以函數結束了.
例二:
    def f():
        
try: print(1) return 1 except: return(2) else: print(3) return 3 finally: print(0) return 0 print(f()) #總結:如果try下有return的話,若有finally的話,執行finally下的內容,finally內若有return會覆蓋操作try下的return; 若try下沒有return,函數正常執行,但是return檢測是倒著執行的. 在含有return的情況下,並不會阻礙finally的執行。

異常處理中try,else,finally含有return的情況解析