1. 程式人生 > >Python——異常處理

Python——異常處理

view 輸入 false exceptio erro lap ror bsp func

異常:代碼中的邏輯錯誤

程序一旦發生錯誤,就從錯誤的位置停下來不繼續執行

使用try和except就能處理異常

技術分享圖片
try:
    int(aaa)
    print(111)    # 檢查錯誤的位置
    1/0
    print(222)
    name
    print(333)
    2 + 3
    [][3]
    {}[k]
    ret = int(input(number >>> ))
    print(ret * *)
except ValueError:
    print(輸入的數據類型有誤)
except
IndexError: print(超出列表的最大長度了) except Exception: print(你錯了) else: print(沒有異常的時候執行此代碼) finally: print(不管代碼有沒有異常,都執行此代碼)
View Code

  1. try:

    需要處理的錯誤代碼

  2. except:     

    except + 錯誤類型:當代碼發生錯誤且錯誤類型符合時,執行此段代碼
    except 支持多分支
    except + Exception: 萬能異常處理
      有了萬能異常處理仍然要把能預測到的問題單獨處理
      單獨處理的所有內容都應該寫在萬能異常之前

技術分享圖片
# 可以看到報錯信息的異常處理

try:
    int(aaa)
    print(111)    # 檢查錯誤的位置
    1/0
    print(222)
    name
    print(333)
    2 + 3
    [][3]
    {}[k]
    ret = int(input(number >>> ))
    print(ret * *)
except Exception as error:  # 可以看到報錯信息
    print(你錯了,error)
View Code

  3. else:

    沒有異常的時候執行此代碼

  4. finally:

    不管代碼有沒有異常,都執行此代碼
    finally 和 return 相遇的時候,依然會執行
      執行到return時,發現後面還有finally,先執行finally,再返回
      常用於在函數中做異常處理,不管是否異常,去做一些收尾工作(如:關閉文件)

技術分享圖片
# finally的用法

# (1)不用finally
def func():
    try:
        f = open(file,w)
        f.close()
        return True
    except:
        f.close()
        return False
print(func())


# (1)使用finally
# 執行到return時,發現後面還有finally,先執行finally,再返回
def func():
    try:
        f = open(file,w)
        return True
    except:
        return False
    finally:
        print(執行finally了)
        f.close()
print(func())
View Code

Python——異常處理