python異常處理

2022-07-31 03:27:16 字數 1713 閱讀 1637

常見異常

attributeerror 試圖訪問乙個物件沒有的屬性,比如foo.x,但是foo沒有屬性x

ioerror 輸入/輸出異常;基本上是無法開啟檔案

importerror 無法引入模組或包;基本上是路徑問題或名稱錯誤

indentationerror 語法錯誤(的子類) ;**沒有正確對齊

indexerror 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]

keyerror 試圖訪問字典裡不存在的鍵

keyboardinterrupt ctrl+c被按下

nameerror 使用乙個還未被賦予物件的變數

syntaxerror python**非法,**不能編譯(個人認為這是語法錯誤,寫錯了)

typeerror 傳入物件型別與要求的不符合

unboundlocalerror 試圖訪問乙個還未被設定的區域性變數,基本上是由於另有乙個同名的全域性變數,

導致你以為正在訪問它

valueerror 傳入乙個呼叫者不期望的值,即使值的型別是正確的

什麼是異常處理

python直譯器檢測到錯誤,觸發異常(也允許程式設計師自己觸發異常)

程式設計師編寫特定的**,專門用來捕捉這個異常(這段**與程式邏輯無關,與異常處理有關)

如果捕捉成功則進入另外乙個處理分支,執行你為其定製的邏輯,使程式不會崩潰,這就是異常處理

為啥要進行異常處理

python解析器去執行程式,檢測到了乙個錯誤時,觸發異常,異常觸發後且沒被處理的情況下,程式就在當前異常處終止,後面的**不會執行,誰會去用乙個執行著突然就崩潰的軟體。

所以你必須提供一種異常處理機制來增強你程式的健壯性與容錯性

如何進行異常處理

首先須知,異常是由程式的錯誤引起的,語法上的錯誤跟異常處理無關,必須在程式執行前就修正

一: 使用if判斷式

二:python為每一種異常定製了乙個型別,然後提供了一種特定的語法結構用來進行異常處理

語法結構

try:

被檢測的**塊

except 異常型別:

try中一旦檢測到異常,就執行這個位置的邏輯

在python的異常中,有乙個萬能異常:exception,他可以捕獲任意異常

主動觸發異常

#_*_coding:utf-8_*_

try:

raise typeerror('型別錯誤')

except exception as e:

print(e)

異常的else和finally

try:

int(s)

print("-----")

print(111) # 前面發生錯誤,此行不執行

except nameerror as e:

print(e)

except valueerror as e:

print(e)

else:

print("try內**沒有異常則執行")

print("繼續其他事情")

finally:

print("都會執行,進行清理等相關工作")

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...