Python day 8 異常處理)

2021-09-29 04:38:32 字數 3800 閱讀 1274

以下是 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...