星期五, 2月 03, 2017

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

參考資料

0 意見 :

張貼留言

回覆意見時,麻煩輸入一下暱稱
(隨便取個名字也好~ ^_^)
好讓我方便回覆您的問題,
選擇「名稱/網址」輸入您的暱稱,
麻煩一下,謝謝大家。

關閉廣告 [X]