日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

在python中、如果异常并未被处理或捕捉_python异常处理(一)

發布時間:2025/3/21 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在python中、如果异常并未被处理或捕捉_python异常处理(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python的異常處理能力是很強大的,可向用戶準確反饋出錯信息。在Python中,異常也是對象,可對它進行操作。所有異常都是基類Exception的成員。所有異常都從基類Exception繼承,而且都在exceptions模塊中定義。Python自動將所有異常名稱放在內建命名空間中,所以程序不必導入exceptions模塊即可使用異常。Python用異常對象(exception object)表示異常情況,遇到錯誤后,會引發異常。如果異常對象并未被處理或捕捉,程序就會用所謂的回溯(Traceback,一種錯誤信息)終止執行。

注意:雖然大多數錯誤會導致異常,但一個異常不一定代表錯誤,有時候它們只是一個警告,有時候它們可能是一個終止信號,比如退出循環等。

一.與python異常相關的關鍵字

raise:手動拋出/引發異常:raise [exception[,data]

try/except:捕獲異常并處理

pass:忽略異常

as:定義異常實例(except IOError as e)

finally:無論是否出現異常,都執行的代碼]

else:如果try中的語句沒有引發異常,則執行else中的語句

except Exception as error:

二.python中的異常類型

1.StandardError類:如果程序上出現邏輯錯誤, 將引發該異常。StandardError類是所有內斂異常的基類,放置在默認的命名空間中,因此使用IOEroor, EOFError, ImportError等類,不需要導入exception模塊。

StopIteration類:判斷循環是否執行到尾部,如果循環到尾部,則拋出該異常。

GeneratorExit類:是由Generator函數引發的異常,當調用close()時引發該異常。

Warning類:表示程序中的代碼引起的警告。

三.基本方式:

1.try:

語句1

except??[exception1(,exception2...),[data…]]:

語句2

else:

語句3

該種異常處理語法的規則是:

·?? 執行try下的語句,如果引發異常,則執行過程會跳到第一個except語句。

·?? 如果第一個except中定義的異常與引發的異常匹配,則執行該except中的語句。

·?? 如果引發的異常不匹配第一個except,則會搜索第二個except,允許編寫的except數量沒有限制。

·?? 如果所有的except都不匹配,則異常會傳遞到下一個調用本代碼的最高層try代碼中。

·?? 如果沒有發生異常,則執行else塊代碼。

import traceback

try:

1/0

except Exception as err:

print(err)

try:

f = open("file.txt","r")

except IOError as e:

print(e)

try:

f = open("file.txt","r")

except Exception as e:

print(e)

最后兩個的輸出是一模一樣的---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.try:

語句1

finally:

語句2

該語句的執行規則是:

·?? 執行try下的代碼。

·?? 如果發生異常,在該異常傳遞到下一級try時,執行finally中的代碼。

·?? 如果沒有發生異常,則執行finally中的代碼。

第二種try語法在無論有沒有發生異常都要執行代碼的情況下是很有用的。例如我們在python中打開一個文件進行讀寫操作,我在操作過程中不管是否出現異常,最終都是要把該文件關閉的。這兩種形式相互沖突,使用了一種就不允許使用另一種,而功能又各異

所以,一般情況下,finally里面執行的都是一些清理工作,比如:關閉文件描述符,釋放鎖等

注意,finally中,如果出現異常,外部如果沒有相應的捕獲機制,該異常會層層拋出,直到最頂端,然后解釋器停止。一般在外層再加一次try except異常捕獲

三.手動使用raise引發異常

1.raise [exception[,data]]

2.在Python中,要想引發異常,最簡單的形式就是輸入關鍵字raise,后跟要引發的異常的名稱。異常名稱標識出具體的類:Python異常是那些類的對象。執行raise語句時,Python會創建指定的異常類的一個對象。raise語句還可指定對異常對象進行初始化的參數。為此,請在異常類的名稱后添加一個逗號以及指定的參數(或者由參數構成的一個元組)。

3.實例:

try:

print("開始測試")

raise IOError

except IOError:

print("定義好的錯誤")

except:

print("別的錯誤")

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的在python中、如果异常并未被处理或捕捉_python异常处理(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。