python筆記——異常處理
捕獲異常
try:
《語句》
except 《異常名1>:
《語句》
except 《異常名2>:
《語句》
else:
《語句》
另一種形式,不包含except和else語句
try:
《語句》
finally:
《語句》
eg.[python]view plain
copy
?
l = [1,2,3,4]
try:
print(l[5])
except:
print("error")
else:
print("no error")
finally:
print("finally")
常見的異常:
attributeerror 呼叫不存在的方法引發的異常
eoferror 遇到檔案末尾引發的異常
importerror 匯入模組出錯引發的異常
indexerror 列表月越界引發的異常
ioerror i/o操作引發的異常,如開啟檔案出錯等
keyerror 使用字典中不存在的關鍵字引發的異常
nameerror 使用不存在的變數名引發的異常
taberror 語句塊縮排不正確引發的異常
valueerror 搜尋列表中不存在值引發的異常
zerodivisionerror 除數為零引發的異常
eg.try:
l[2]/0
except indexerror:
print('indexerror')
except zerodivisionerror:
print('zerodivisionerror')
else:
print 'no error'
多重異常的處理
可以在try語句中巢狀另乙個try語句
一旦發生異常,python匹配最近的except語句,
若是內部except能夠處理該異常,則外圍try語句不會捕獲異常。
若是不能,或者忽略,外圍try處理
引發異常
python中可以通過raise語句手工引發異常,並向異常傳遞資料
使用raise可以定義新的錯誤型別,以適應指令碼的需要
格式:raise 異常名
raise 類名(異常資訊)
捕獲時:
except myexception as e:
print(e) #將列印出異常資訊
[python]view plain
copy
?
#自定義異常
class lengthrequiredexception(exception):
def __init__(self,length,minlength):
exception.__init__(self)
self.length = length
self.minlength = minlength
#引發自定義的異常
l = [1,2,3,4,5]
minlength = 6
try:
raise lengthrequiredexception(len(l),minlength)
except indexerror:
print("index out of bounds")
except lengthrequiredexception as e:
print("length not fit :length is %d required %d" %(e.length,e.minlength))
else:
print("no exception was raised")
finally:
print("finally will be execute")
以上兩段程式執行結果:
分享到:
python筆記 異常處理
1.狹義的異常處理 當一次請求多個網頁時,如果其中乙個網頁出錯,那麼整個程式就會終止,造成其他網頁都無法完成請求。所以需要通過異常處理將可能出錯的網頁進行處理,以至於其他網頁能被請求。import requests urls defget data url data requests.get url...
Python 異常處理筆記
異常處理 異常 程式執行過程 現的錯誤和警告 異常類 給不同的種類的異常分的型別 nameerror 標示符未定義錯誤 print a typeerror 型別錯誤 print abcd 123 indexerror 下標越界錯誤 lis 紅燒肉 香辣烤魚 火鍋 print lis len lis ...
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...