異常處理的使用
一.異常處理
將異常報錯進行自定義處理,程式並不會因為報錯終端,並會按使用者定義
錯誤輸出,報錯資訊。
縮排,語法錯誤處理不了,因為解釋不了語法。
案例
1.單個錯誤進行處理。
try: names[3]
data[
'name']
except
keyerror as e :
print("
沒有這個key
",e)
except
indexerror as e :
print("
列表操作錯誤
",e)
2.將相同出錯,批量在一起。
try: names[3]
data[
'name']
except
(keyerror,indexerror) as e :
print("
統一出錯
",e)
3.抓住所有錯誤(exception)。
try: names[3]
data[
'name']
except
exception as e :
print("
出錯了",e)
4.處理錯誤並處理未知錯誤。
try: names[3]
data[
'name']
except
(keyerror,indexerror) as e :
print("
出錯了"
,e)except
exception as e:
print("
未知錯誤
",e)
二.異常處理結合使用
#結合使用
try:
names[3]
data[
'name']
#抓多個錯誤
except
(keyerror,indexerror) as e :
print("
出錯了"
,e)#
抓所有錯誤
except
exception as e:
print("
未知錯誤
",e)
#當沒有任何錯誤的時候執行
else
:
print("
一切正常")
#不管有沒有錯都執行
finally
:
print("
不管有沒有錯都執行
")
三.自定義異常
#自定義異常處理
#aliexexception自定義異常,exception是基類。
class
alexexception(exception):
def__init__
(self, msg):
self.message =msg
#列印後返回格式,可以註冊
def__str__
(self):
return
self.message
try:
#使用raise觸發自己寫的異常
raise alexexception('
資料庫連不上')
#列印的e是msg 預設寫了__str__。
except
alexexception as e:
print (e)
四.其他常用的異常報錯
1.常用報錯
attributeerror 試圖訪問乙個物件沒有的樹形,比如foo.x,但是foo沒有屬性xioerror 輸入/輸出異常;基本上是無法開啟檔案
importerror 無法引入模組或包;基本上是路徑問題或名稱錯誤
indentationerror 語法錯誤(的子類) ;**沒有正確對齊
indexerror 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]
keyerror 試圖訪問字典裡不存在的鍵
keyboardinterrupt ctrl+c被按下
nameerror 使用乙個還未被賦予物件的變數
syntaxerror python**非法,**不能編譯(個人認為這是語法錯誤,寫錯了)
typeerror 傳入物件型別與要求的不符合
unboundlocalerror 試圖訪問乙個還未被設定的區域性變數,基本上是由於另有乙個同名的全域性變數,
導致你以為正在訪問它
valueerror 傳入乙個呼叫者不期望的值,即使值的型別是正確的
2.其他報錯
arithmeticerrorassertionerror
attributeerror
baseexception
buffererror
byteswarning
deprecationwarning
environmenterror
eoferror
exception
floatingpointerror
futurewarning
generatorexit
importerror
importwarning
indentationerror
indexerror
ioerror
keyboardinterrupt
keyerror
lookuperror
memoryerror
nameerror
notimplementederror
oserror
overflowerror
pendingdeprecationwarning
referenceerror
runtimeerror
runtimewarning
standarderror
stopiteration
syntaxerror
syntaxwarning
systemerror
systemexit
taberror
typeerror
unboundlocalerror
unicodedecodeerror
unicodeencodeerror
unicodeerror
unicodetranslateerror
unicodewarning
userwarning
valueerror
warning
zerodivisionerror
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...