python中的五種異常處理機制介紹

2021-09-12 11:46:17 字數 1511 閱讀 9067

python主要支援五種異常機制。

預設的異常處理器

複製** **如下:

s = 'hello girl!'

print s[100]

print 'continue'

如果我們沒有對異常進行任何預防,那麼在程式執行的過程中發生異常,就會中斷程式,呼叫python預設的異常處理器,並在終端輸出異常資訊。這種情況下,第3行**不會執行。

try…except

複製** **如下:

s = 'hello girl!'

try:

print s[100]

except indexerror:

print 'error...'

print 'continue'

程式執行到第2句時發現try語句,進入try語句塊執行,發生異常,回到try語句層,尋找後面是否有except語句。找到except語句後,會呼叫這個自定義的異常處理器。except將異常處理完畢後,程式繼續往下執行。這種情況下,最後兩個print語句都會執行。

except後面也可以為空,表示捕獲任何型別的異常。

try…finally

複製** **如下:

s = 'hello girl!'

try:

print s[100]

finally:

print 'error...'

print 'continue'

finally語句表示,無論異常發生與否,finally中的語句都要執行。但是,由於沒有except處理器,finally執行完畢後程式便中斷。這種情況下,倒第2個print會執行,到第1個不會執行。如果try語句中沒有異常,三個print都會執行。

assert

複製** **如下:

assert false,'error...'

print 'continue'

這個語句,先判斷assert後面緊跟的語句是true還是false,如果是true則繼續執行print,如果是false則中斷程式,呼叫預設的異常處理器,同時輸出assert語句逗號後面的提示資訊。本例情況下,程式中斷,提示error,後面的print不執行。

with…as

複製** **如下:

with open('nothing.txt','r') as f:

f.read()

print 2/0

print 'continue'

我們平時在使用類似檔案的流物件時,使用完畢後要呼叫close方法關閉,很麻煩。這裡with…as語句提供了乙個非常方便的替代方法:open開啟檔案後將返回的檔案流物件賦值給f,然後在with語句塊中使用。with語句塊完畢之後,會隱藏地自動關閉檔案。

如果with語句或語句塊中發生異常,會呼叫預設的異常處理器處理,但檔案還是會正常關閉。這種情況下,會丟擲異常,最後的print不執行。

參考:junjie

python中的五種異常處理機制介紹

從幾年前開始學習程式設計直到現在,一直對程式中的異常處理懷有恐懼和排斥心理。之所以這樣,是因為不了解。這次攻python,首先把自己最畏懼和最不熟悉的幾塊內容列出來,裡面就有 異常處理 這一項。python主要支援五種異常機制,一一枚舉。預設的異常處理器 複製 如下 s hello girl pri...

python中的五種異常處理機制介紹

從幾年前開始學習程式設計直到現在,一直對程式中的異常處理懷有恐懼和排斥心理。之所以這樣,是因為不了解。這次攻python,首先把自己最畏懼和最不熟悉的幾塊內容列出來,裡面就有 異常處理 這一項。dive into python 並沒有專門介紹異常處理,只是例子中用到的時候略微說明了一下。今天 lea...

python python try異常處理機制

python的try語句有兩種風格 一 種是處理異常 try except else 二 種是無論是否發生異常都將執行最後的 try finally try except else風格 try 語句 執行別的 except 名字 語句 如果在try部份引發了 name 異常 except 名字 資料...