Python3錯誤和異常:
語法錯誤:Python的語法錯誤或者稱之爲解析錯,是初學者經常碰到的
異常:即便Python的程序的語法是正確的,在運行它的時候,也有可能發生錯誤。運行期檢測到的錯誤被稱爲異常。
大多數的異常都不會被程序處理
異常處理:以下例子中,讓用戶輸入一個合法的整數,但是允許用戶中斷這個程序(使用Control-C或者操作系統提供的方法)。用戶中斷的信息會引發一個KeyboardInterrupt異常。
>>> while True: try: x = int(input("Please enter a number: ")) break except ValueError: print("Oops! That was no valid number. Try again ")
try語句按照如下方式工作;
- 首先,執行try子句(在關鍵字try和關鍵字except之間的語句)
- 如果沒有異常發生,忽略except子句,try子句執行後結束。
- 如果在執行try子句的過程中發生了異常,那麼try子句餘下的部分將被忽略。如果異常的類型和 except 之後的名稱相符,那麼對應的except子句將被執行。最後執行 try 語句之後的代碼。
- 如果一個異常沒有與任何的except匹配,那麼這個異常將會傳遞給上層的try中。
- try except 語句還有一個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行。
拋出異常: Python 使用 raise 語句拋出一個指定的異常。
用戶自定義異常:
1. 你可以通過創建一個新的exception類來擁有自己的異常。異常應該繼承自 Exception 類,或者直接繼承,或者間接繼承
2. 當創建一個模塊有可能拋出多種不同的異常時,一種通常的做法是爲這個包建立一個基礎異常類,然後基於這個基礎類爲不同的錯誤情況創建不同的子類: