以下是 python 內建異常類的層次結構:
baseexception
±- systemexit
±- keyboardinterrupt
±- generatorexit
±- exception
±- stopiteration
±- arithmeticerror
| ±- floatingpointerror
| ±- overflowerror
| ±- zerodivisionerror
±- assertionerror
±- attributeerror
±- buffererror
±- eoferror
±- importerror
±- lookuperror
| ±- indexerror
| ±- keyerror
±- memoryerror
±- nameerror
| ±- unboundlocalerror
±- oserror
| ±- blockingioerror
| ±- childprocesserror
| ±- connectionerror
| | ±- brokenpipeerror
| | ±- connectionabortederror
| | ±- connectionrefusederror
| | ±- connectionreseterror
| ±- fileexistserror
| ±- filenotfounderror
| ±- interruptederror
| ±- isadirectoryerror
| ±- notadirectoryerror
| ±- permissionerror
| ±- processlookuperror
| ±- timeouterror
±- referenceerror
±- runtimeerror
| ±- notimplementederror
±- syntaxerror
| ±- indentationerror
| ±- taberror
±- systemerror
±- typeerror
±- valueerror
| ±- unicodeerror
| ±- unicodedecodeerror
| ±- unicodeencodeerror
| ±- unicodetranslateerror
±- warning
±- deprecationwarning
±- pendingdeprecationwarning
±- runtimewarning
±- syntaxwarning
±- userwarning
±- futurewarning
±- importwarning
±- unicodewarning
±- byteswarning
±- resourcewarning
try:
檢測範圍(try的語句塊)
except exception[as reason]:
出現異常(exception)後的處理**
作用:提公升使用者體驗,將出錯原因變得通俗易懂。例如,
try
: f=
open
('我為什麼是乙個檔案.txt'
)print
(f.read())
f.close(
)except oserror:
print
('檔案出錯啦t_t'
)>>
>
檔案出錯啦t_t
>>
>
#呼叫時顯示的內容
顯示錯誤的原因的方法:
try
: f=
open
('我為什麼是乙個檔案.txt'
)print
(f.read())
f.close(
)except oserror as reason:
print
('檔案出錯啦t_t\n錯誤的原因是:'
+str
(reason)
)>>
>
檔案出錯啦t_t
錯誤的原因是:…………
>>
>
#呼叫時顯示的內容
注意,若在try中有多個檢測異常的語句,程式只執行第乙個且在except中只返回該異常的解釋內容,其他的不顯示,若想使其顯示可以:
try
:sum=1
+'1'
f=open
('我為什麼是乙個檔案.txt'
)print
(f.read())
f.close(
)except
(oserror typeerror)
:print
('檔案出錯啦t_t'
)
try:
檢測範圍(try的語句塊)
except exception[as reason]:
出現異常(exception)後的處理**
finally:
無論如何都會被執行的**
作用:當程式檢測到異常的時候,後續操作將不再進行,例如:
try
: f=
open
('我為什麼是乙個檔案'
,'w'
)print
(f.write(
'我存在了!'))
sum=1+
'1' f.close(
)except
(oserror typeerror)
:print
('檔案出錯啦t_t'
)>>
>
5檔案出錯啦t_t#呼叫時顯示的內容
此時若開啟該檔案會發現檔案中並沒有寫入的內容,因為檔案並未執行f.close()語句,因而未儲存,此時需要用到finally語句:
try
: f=
open
('我為什麼是乙個檔案'
,'w'
)print
(f.write(
'我存在了!'))
sum=1+
'1'except
(oserror typeerror)
:print
('檔案出錯啦t_t'
)finally
: f.close(
)>>
>
5檔案出錯啦t_t#呼叫時顯示的內容
可以使程式自己引發乙個異常,例如:
raise zerodivisionerror(
'除數為零的異常'
)…………
zerodivisionerror:除數為零的異常#呼叫時顯示的內容
Python Day8 異常處理
python常見的標準異常總結 異常解釋 assertionerror 斷言語句 assert 失敗 attributeerror 嘗試訪問未知的物件屬性 importerror 匯入模組失敗 indexerror 索引超出序列的範圍 keyerror 字典中查詢乙個不存在的關鍵字 memoryer...
python day8 檔案操作
引數 1.檔案路徑。2.編碼方式,encode 3.執行動作 開啟方式 唯讀,只寫,追加,讀寫,寫讀。f open f mm wpcmimi.txt encoding utf 8 content f.read print content f.close f 變數,f obj,file,f handl...
Python day8 正規表示式
python php正規表示式 d 匹配乙個數字字元,還可以使用 0 9 d 匹配乙個非數字字元,還可以使用 0 9 w 匹配包括下劃線的任何單詞字元,還可以使用 0 9a za z w 匹配任何非單詞字元,還可以使用 w s 匹配任何空白字元,space縮寫 s 匹配任何非空白字元,還可以使用 s...