在程式設計過程中我們並不希望使用者看到許多的錯誤報警,特別是報警的源**,互動很不友好,所以在除了自己進行除錯過程之外,應盡可能的避免出現一場**,就引入了異常處理這個機制。
異常描述
nameerror
嘗試訪問乙個沒有申明的變數
zerodivisionerror
除數為0
syntaxerror
語法錯誤
indexerror
索引超出序列範圍
keyerror
請求乙個不存在的字典關鍵字
ioerror
輸入輸出錯誤(比如你要讀的檔案不存在)
attributeerror
嘗試訪問未知的物件屬性
valueerror
傳給函式的引數型別不正確,比如給int()函式傳入字串形
使用python中內建的錯誤進行判斷:
try:"可能錯誤的表示式"
except "錯誤型別" as e:
print("有%s這個錯誤"%e)
except exception:#其他任意錯誤型別
print("非指定錯誤")
else:
print("一切正常")
class jiangexception(exception):#無法對自帶的錯誤進行覆蓋,但盡量避免去使用。def __init__(self,msg):
self.message = msg
def __str__(self):
return self.message
try:
raise jiangexception("自定義錯誤")#raise語句觸發異常
except jiangexception as e:
print(e)
finally:#finally是無論是否出現該異常均要執行。print("不管怎麼樣我都要列印"
assert type(..) is int#斷言,保護之後的**,嚴格行
print(....)
python 中的異常處理
python的異常處理能力是很強大的,可向使用者準確反饋出錯資訊。在python中,異常也是物件,可對它進行操作。所有異常都是基類exception的成員。所有異常都從基類exception繼承,而且都在exceptions模組中定義。python自動將所有異常名稱放在內建命名空間中,所以程式不必匯...
Python中的異常處理
當python檢測到乙個錯誤時,直譯器就無法繼續執行了,反而出現了一些錯誤的提示,這就是所謂的 異常 看如下示例 try print test1 open 123.txt r print test2 except ioerror pass此時可以正常執行,執行結果為 test1 說明 try exc...
python中的異常處理
python使用異常物件來表示異常狀態,並在遇到錯誤時引發異常,異常物件未被處理時,程式將終止並顯示一條錯誤資訊。raise語句 自定義異常類 class somecustomexception exception pass class myexceptionclass exception def ...