異常:異常指的是軟體在執行的過程中,因為一些原因(如:使用者操作不當等),引起程式錯誤,
導致程式無法正常執行的現象。
異常處理:在程式出現異常時,如果想要程式繼續執行或者處理完這些異常情況繼續執行就需要進行
異常處理。
異常捕獲可以使用try…except…else…finally語句來執行,具體語法如下:
try:
可能出現異常的**塊
except :
處理異常的**塊
else:
else**是乙個可選**塊,即有沒有都可以,
finally:
最終要執行的**塊,也是可選**塊。
上述語法的執行順序為:先執行try**塊中的**,如果出現異常則在出現異常處停下,執行except**塊中的東西,如果不出現異常則執行else**塊的東西且except**塊中的**不會被執行,finally**塊中的東西無論是否出現異常都會被執行,其中else和finally都是可選項,finally多用於像關閉流這類必須執行的操作。
except**塊可以寫多個,具體如下:
try:
可能出現異常的**塊
except error1 :
處理異常的**塊
except error2 :
處理異常的**塊
。。。else:
else**是乙個可選**塊,即有沒有都可以,
finally:
最終要執行的**塊,也是可選**塊。
此處列舉常見的異常:
attributeerror :試圖訪問乙個物件沒有的屬性
ioerror :輸入/輸出異常;如無法開啟檔案
importerror :無法引入模組或包;可能是路徑問題或名稱錯誤
indentationerror :縮排錯誤
indexerror :索引下標越界
keyerror :訪問不存在的鍵
keyboardinterrupt: 鍵盤輸入打斷,快捷鍵為ctrl+c
syntaxerror python:語法錯誤
typeerror :物件型別錯誤
valueerror 傳入值錯誤
python中的異常都繼承於exception類,所以要自定義異常就需要直接或者間接繼承exception類。
# 自定義異常
class
myexception
(exception)
:# 初始化
def__init__
(self, msg)
: self.msg = msg
def__str__
(self)
:return self.msg
try:
# 此處用raise來丟擲異常資訊
raise myexception(
"錯誤資訊"
)except myexception as e:
print
(e)
上述**中使用了raise來丟擲乙個指定的異常,語法如下:
raise 要丟擲的異常(「異常資訊」)
如果在except**塊中不想處理異常也可以繼續raise丟擲。
python中異常語句 python 異常
導航 python的異常分為兩種,1 語法錯誤,在python直譯器的語法檢測中不通過不能執行 2 異常,python程式執行期檢測到的錯誤被稱為異常。在沒有做異常處理時,將終止程式並提示異常資訊,如 字串轉換為數字時的型別轉換異常,檔案讀取時的檔案不存在異常,網路鏈結時主機不可達異常 等。當pyt...
python中的異常
exception類是最常用的異常類,該類包括standarderror,stopiteration,generatorexit,warning等異常類.standarderror類是python的錯誤異常,如果程式中出現邏輯上的錯誤,將引發該異常.例如除數為0的異常。standarderror類是...
python中的異常
1,空的except語句將會捕捉所有的異常,可以用sys模組中取出異常名和異常的值 2,raw input 讀檔案到末尾時,會引發eoferror異常,這種異常不是錯誤 3,finally只做清楚工作,不做異常處理 異常處理的例子 myexception error defraise1 raisem...