python--異常處理

異常處理

1. 什麼是異常

異常:不正常的情況

 

不正常的情況,在程序中,會有兩種體現

l 自己造孽:寫錯代碼了!錯誤也是一種異常;程序都運行不起來!

l 程序運行過程中,在某些特定條件下,不合適的數據引起程序出現錯誤導致程序崩潰

n 要求用戶輸入一個數字,但是用戶誤操作輸入了字符串,在進行類型轉換時就會出現錯誤導致程序崩潰!

 

爲什麼要處理異常:

當程序在運行過程中,由於用戶的誤操作或者不合適的數據引發的程序錯誤,讓代碼自己處理並保證程序的正常執行。而不至於因爲錯誤導致程序崩潰!

提高代碼的健壯性!

 

怎麼處理異常:

捕獲處理異常

斷言處理異常【測試異常信息】[擴展]

 

捕獲處理異常語法:

try:   # 嘗試,通常情況,將可能出現異常的代碼,包含在try中

<可能會出現異常的代碼>

except [異常信息]: # 一旦出現異常,代碼就會直接從出現異常的地方跳轉到except中執行

<出現異常之後要執行的代碼>

else: # 如果try中的代碼執行沒有異常,執行完畢後,就會執行else中的代碼

<正常執行try之後,else中的代碼執行>

finally: # 不論是否出現異常,都要在try執行完成之後執行的代碼

<最終的掃尾工作>

 

案例操作:

要處理異常:

<適合新手和老鳥>

首先要明確哪些代碼可能會出現異常,其次定位異常可能出現的代碼的位置,然後將可能出現異常的代碼進行異常處理。

<適合老鳥:經驗>

在寫代碼的同時,直接處理異常

 

1. 基本異常處理

try-except直接處理異常【可以處理任何異常—不能定位具體是什麼異常】

try-except [異常信息] 【可以處理指定的異常】

2. 常見的異常

所有異常的超類:BaseException

標準異常的超類:Exception(BaseException)

程序執行過程中經常看到的異常:

……

 

3. 處理多個異常

try-except (E1, E2, E3, …,En) as e 一個except處理指定的多個異常

try-except E1-except E2-except E3… 每個except處理指定的異常

 

通常情況下,我們要查看異常信息,就需要打印異常信息—打印e變量的值

問題:

1) 系統提供的異常信息,晦澀難懂!

2) 系統提供的異常信息,畢竟有限!

 

4. 自定義異常

異常— 一種對象

自定義異常 – 一種自定義類型

自定義類型[異常] – 參考標準異常(繼承Exception)—自定義異常(繼承Exception)

 

5. 主動拋出異常

在開發的過程中,主動出現一種錯誤,將錯誤拋出給程序告訴程序出錯了。

通過raise關鍵字,拋出一個異常

 

6. 自定義異常,就是爲了專門拋出錯誤的,拋出錯誤,就是嚴重警告這裏出現了什麼問題

 

首先-代碼執行過程中,出現了異常【系統標準異常】【信息不是很明白】

捕獲系統異常,創建一個自定義異常

拋出自定義異常【自定義異常】【信息明確的錯誤】

 

自定義異常的目的:轉換異常信息,將不明確的異常信息轉換成更加精確的異常信息

 

轉換異常信息:異常的傳遞~傳遞更加明確的異常,給後面的代碼進行處理!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章