Python 錯誤異常處理(Exception)

範例

def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        print("b 值不能為零")
    else:
        print("結果", result)
    finally:
        print("執行 finally 程式區塊")


divide(2, 1)
divide(2, 0)
divide("2", "1")

程式說明:
第1行:定義一個除法的函數,名稱為divide,可以接收 a 和 b 參數值,為被除數與除數值。
第2行:使用 try 包起一個可能發生異常例外的程式區塊。
第4行:當發生程式例外狀況,會執行此程式區塊,以此例若 b 值為數字零,將會列印 『b 值不能為零』。
第6行:若try程式區塊,無發生任何程式例外,則執行else 區塊,此例則會印出 a 除以 b 的結果值。
第8行:不論 try 程式區塊,是否會發生例外或成功運行都會執行 finally 程式區塊,此區塊通常應用在釋放檔案或網路連線資源。
第14行:因此例,定義的 divide 函數中的參數,只接受數值型態,若呼叫該函數,帶字串參數將會發生 TypeError 錯誤。

運算結果

結果 2.0
執行 finally 程式區塊
b 值不能為零
執行 finally 程式區塊
執行 finally 程式區塊
Traceback (most recent call last):
  File "/home/qq/PycharmProjects/demo/error.py", line 14, in <module>
    divide("2", "1")
  File "/home/qq/PycharmProjects/demo/error.py", line 3, in divide
    result = a / b
TypeError: unsupported operand type(s) for /: 'str' and 'st

參考資料

這個網誌中的熱門文章

16天記下7000單字

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

nano 文字編輯器

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

【從零開始學 Flutter 程式設計】SharedPreferences 設定檔資料存取