開發者學堂課程【Python 語言基礎 3:函數、面向對象、異常處理:異常對象】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/601/detail/8764異常對象
目錄:
一、如何捕獲異常對象
二、捕獲異常對象示範
三、try 語句
當程式運作過程中出現異常以後,所有的異常資訊都會被儲存在一個專門的異常對象中,而異常傳播時,實際上就是異常對象抛給了調用處。如果 except 後跟着一個異常的類型,那麼隻會捕獲該類型的異常,比如:
ZeroDivisionError 類的對象用來表示除 0 異常
Nameerror 類的對象用來處理變量錯誤的異常
如果 except 後沒有任何内容,則此時會捕獲到所有異常, exception 是所有異常類的父類,相當于 except,是以如果 except 後跟着 exception,也會捕獲到所有異常。在異常類後面跟着 as xx 此時 xx 就是異常對象,但通常情況下沒有特别大的作用。運用 Finally 子句即無論是否出現異常,該子句都會執行,是以通常将必須執行的代碼放在 finally 子句中。
print(‘異常出現前’)
1=[]
Try:
#Print(c)
#1[10]
#1+’hollo’
Print(10/0)
Except NameError:
Print(‘出現NameError異常‘)
Except ZeroDivisionError:
Print(‘出現ZeroDivisionError異常’)
Except IndexError:
Print(‘出現IndexDivisionError異常’)
Except Exception as e:
Print(‘未知異常’,e,type(e))
Finally:
Print(‘無論是否出現異常,該子句都會執行’)
Print(‘異常出現後’)
将可能出錯的代碼放入到 try 語句中,如果代碼沒有錯誤,則會正常執行,如果出現錯誤,則會執行 except 子句中的代碼,通過這種方式處理異常,避免給因為一個異常導緻整個程式的終止。Try 語句如下:
Try:
代碼塊(可能出現錯誤的語句)
Except 異常類型 as 異常名:
代碼塊(出現錯誤以後的處理方式)
Else:
代碼塊(沒出錯時要執行的語句)
Finally:
代碼塊(該代碼塊總會執行)
其中 Try 語句是必須的,else 語句可有可無,except 和 finally 至少有一個即可。