所有異常類都是繼承exception
python 有兩種錯誤很容易辨認:語法錯誤和異常。
即便 python 程式的語法是正確的,在執行它的時候,也有可能發生錯誤。
執行期檢測到的錯誤被稱為異常。
大多數的異常都不會被程式處理,都以錯誤資訊的形式展現在出來
捕獲簡單異常
try
: # 語句塊
#這裡放的是可能遇到異常的**
except:
# 異常處理**
# 遇到異常輸出的**
else
: # 沒有遇到異常時執行的**塊
finally:
# 無論有沒有異常都要執行的**
注:這個語法,不會分辨是什麼型別的異常,只要遇到異常就會執行except裡面的**塊
捕獲多個異常
try
: # 可能存在異常的**
except
(異常名稱 1
,異常名稱2,異常名稱3):
# 異常處理**
# 遇到異常時執行的**
else
: # 沒有遇到異常時執行的**塊
finally:
# 無論有沒有異常都要執行的**
注:這個語法只要遇到括號中的異常就執行except下的**塊,不會根據不同的異常執行不同的**
並且這個不區分優先順序
分類處理多個異常
try
: 可能存在異常的**
except (異常名稱1):
# 異常1的處理**
except (異常名稱2):
# 異常2的處理**
else
: # 沒有遇到異常時執行的**塊
finally:
# 無論有沒有異常都要執行的**
這個是有優先順序的
執行try下的語句,如果引發異常,則執行過程會跳到第乙個except語句。
如果第乙個except中定義的異常與引發的異常匹配,則執行該except中的語句。
如果引發的異常不匹配第乙個except,則會搜尋第二個except,允許編寫的except數量沒有限制。
如果所有的except都不匹配,則異常會傳遞到下乙個呼叫本**的最高層try**中。
主動觸發異常(丟擲異常)
語法raise [exception [,args ] [,traceback]]
exception是 異常的型別(例如valueerror),
引數是乙個異常引數值。該引數是可選的,如果不提供,異常的引數是"none(空)" 就是異常錯誤資訊
最後乙個引數是跟蹤異常物件,也是可選的
列子:
def not_zero
(num)
:try
:if num ==0:
raise exception
('引數錯誤'
)return num
except exception as e :
print
(e) # 列印異常錯誤資訊
not_zero(0
)
返回異常發生位置
先導入traceback庫
使用traceback.format_exc()函式或者 traceback.print_exc()
format_exc()返回字串
print_exc()則直接給列印出來
使用案例:
import traceback
try:
t=0if t==0:
raise exception
('t==0了',)
except exception as c:
print
(c) traceback.
print_exc()
else
:print
("沒有異常執行"
)finally:
print
("有沒有異常都要執行的"
)
自定義異常
可以通過建立乙個新的異常類來擁有自己的異常。
異常類繼承自 exception 類,可以直接繼承,或者間接繼承
import traceback
class
dj(exception)
: def __init__
(self,value)
: self.value=value
def __str__
(self)
:return
repr
(self.value)
# 注:
repr
()函式簡單來說就是轉字串的
try:3/
0except dj as c:
print
(c) traceback.
print_exc()
else
:print
("沒有異常執行"
)finally:
print
("有沒有異常都要執行的"
)
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...
python異常舉例 Python異常處理
1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...
python異常處理
當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...