Python高階 異常處理

2022-03-16 23:32:42 字數 2807 閱讀 4260

1.異常的定義

異常是錯誤發生的訊號,程式一旦出錯就會丟擲錯誤資訊,如果不及時處理就會程式就會隨之停止執行

異常有三部分組成:

1)異常型別

2)異常追蹤

3)異常的值

2.異常的分類

1)語法錯誤

無法通過python直譯器解釋的語法

2)邏輯錯誤

3.異常的種類

attributeerror 訪問乙個物件不存在的屬性

ioerror 輸入/輸出異常,例如無法開啟檔案

importerror 無法引入模組或包,通常是路徑問題或名稱錯誤

indentationerror 語法錯誤(的子類),**縮排錯誤

indexerror 下標索引超出序列邊界

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

keyboardinterrupt ctrl+c被按下

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

syntaxerror python**非法,**不能編譯,例如語法錯誤

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

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

導致你以為正在訪問它

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

1.語法 

try

:

#**塊

except

(錯誤型別1, ...):

#**塊

1)單分支

try

:

print('

start...')

s = 1y

l =l[2]

print('

end...')

except

nameerror:

print('

變數名沒有賦值')

#輸出結果

start...

變數名沒有賦值

2)多分支

try

:

print('

start...')

s = 1

#y l=

l[2]

print('

end...')

except

nameerror:

print('

變數名沒有賦值')

except

indexerror:

print('

索引不存在')

#輸出結果

start...

索引不存在

3)多種異常處理同一段邏輯處理

try

:

print('

start...')

s = 1

#y l=

l[2]

print('

end...')

except

(nameerror,indexerror):

print('

一行匹配多個錯誤

')

4)萬能異常

try

:

print('

start...')

s = 1

#y l=

l[2]

print('

end...')

except

exception as e:

print('

萬能異常匹配')

else

:

print('

不存在異常的時候才被執行')

finally

:

print('

有無異常都被執行

')

5)獲取異常值

6)try...else...(else必須與except組合使用)

else只有在被監測的**不存在異常時才會被執行

7)try...finally...

finally無論被監測的**是否存在異常時都會被執行

#

finally的子**塊中通常放**系統資源的**

try:

f=open('

f.txt

','w

',encoding='

utf-8')

f.readline()

except

exception as e:

print

(e)finally

: f.close()

2.主動觸發異常

raise 異常型別('.....')

3.斷言

assret 條件

4.自定義異常處理

class

registererror(baseexception):

def__init__

(self,user,msg):

self.msg =msg

self.user =user

def__str__

(self):

return

'' %(self.user,self.msg)

raise registererror('

zhang

','登入失敗

')

5.異常處理使用的場景

為確保程式的可讀性,應盡量少用

python高階(異常處理)

python程式一旦發生錯誤,就從錯誤的位置停下來了,不會執行後面的內容。a 未定義的變數,nameerror print 我不會執行 該 不會執行 except nameerror try語句 異常 且 錯誤符合時執行 print 語法錯誤 else print try裡面 沒有錯誤時執行。pri...

Python高階 異常處理

就是不正常的情況,程式開發過程中錯誤和bug都是補充正常的情況 引發程式崩潰 try except 異常捕獲處理 try 1 可能發生異常的 except 2 發現異常後,立刻進入except,執行 2 else 3 程式正常執行進入這一行執行 finally 4 出現finally程式必定執行次行...

Python高階 異常處理

try except從句。將可能觸發異常產生的 放到try模組裡,而處理異常的 會在except語句塊裡實現。如 try file open test.txt rb except ioerror as e print an ioerror occured.format e.args 1 輸出 an ...