Python技術分享之異常處理機制

2021-10-06 13:30:30 字數 1680 閱讀 4310

在python無法正確處理程式時,就會發生異常;當發生異常時,我們需要捕獲它並進行處理,否則程式會終止執行。但如何處理異常呢?有哪些方法?接下來就給大家講解python異常處理機制。

try:包含著可能引發異常的**;

except:則用來捕捉和處理發生的異常;

else:如果try塊中沒有丟擲異常,則執行else塊;

finally:無論是否發生異常都會被執行,通常用來釋放try塊中申請的資源。

try…except…

str=「leinor」

try:

print(str[100])

except indexerror:

print(「下標越界」)

print(「error」)

print(「end…」)

當程式執行到第2句時發現try語句,進入try語句塊執行,發生異常,回到try語句層,尋找後面是否有except語句,找到except語句後,會呼叫自定義的異常處理器,except將異常處理完畢後,程式繼續往下執行,即執行except下的語句,try語句結束後,繼續向下執行print(end…)語句。

try…except…finally

str=「leinor」

try:

print(str[100])

except indexerror:

print(「下標越界」)

finally:

print(「try語句執行結束」)

print(「end…」)

finally語句表示無論異常是否發生,finally中的語句都要執行。

try…finally…

str=「leinor」

try:

print(str[100])

finally:

print(「try語句執行結束」)

print(「end…」)

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

assert

assert false 「error…」

print(「end…」)

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

with…as

with open(「d:leinor.txt」,「r」) as f:

f.read()

print(2/0)

print(「end…」)

我們平時在使用類似檔案的流物件時,使用完畢後要呼叫close方法關閉,很麻煩。這裡with…as語句提供了乙個非常方便的替代方法,open開啟檔案後將返回的檔案流物件賦值給f,然後在with語句塊中使用,with語句塊完畢之後,會自動關閉檔案。如果with語句發生異常,會呼叫預設的異常處理器,檔案也會正常關閉,但後面的print語句不執行。

python之異常處理 Python之異常處理

異常物件 請大家執行如下 a 100 0 print a 就會發現直譯器顯示如下的錯誤提示 traceback most recent call last file x.py line 1,in a 100 0 zerodivisionerror division by zero 大家要學會看直譯器...

Python之異常處理

在程式執行過程中影響程式正常執行的內容,稱為異常 nameerror print a indexerror 索引錯誤 li 1,2,3,4 print li 8 keyerror d dict a 1,b 2 print d f zerodivisionerror 除0錯誤 print 10 2 2...

Python之異常處理

try ret int input num 正常執行的 print ret except valueerror 捕捉錯誤 print 請輸入數字 try ret int input num 正常執行的 print ret except valueerror 捕捉錯誤 print 請輸入數字 exce...