python 異常處理

2021-10-04 10:56:56 字數 2592 閱讀 4722

所有異常類都是繼承exception

python 有兩種錯誤很容易辨認:語法錯誤和異常。

即便 python 程式的語法是正確的,在執行它的時候,也有可能發生錯誤。

執行期檢測到的錯誤被稱為異常。

大多數的異常都不會被程式處理,都以錯誤資訊的形式展現在出來

捕獲簡單異常

try

: # 語句塊

#這裡放的是可能遇到異常的**

except:

# 異常處理**

# 遇到異常輸出的**

else

: # 沒有遇到異常時執行的**塊

finally:

# 無論有沒有異常都要執行的**

注:這個語法,不會分辨是什麼型別的異常,只要遇到異常就會執行except裡面的**塊

捕獲多個異常

try

: # 可能存在異常的**

except

(異常名稱 1

,異常名稱2,異常名稱3):

# 異常處理**

# 遇到異常時執行的**

else

: # 沒有遇到異常時執行的**塊

finally:

# 無論有沒有異常都要執行的**

注:這個語法只要遇到括號中的異常就執行except下的**塊,不會根據不同的異常執行不同的**

並且這個不區分優先順序

分類處理多個異常

try

: 可能存在異常的**

except (異常名稱1):

# 異常1的處理**

except (異常名稱2):

# 異常2的處理**

else

: # 沒有遇到異常時執行的**塊

finally:

# 無論有沒有異常都要執行的**

這個是有優先順序的

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

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

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

如果所有的except都不匹配,則異常會傳遞到下乙個呼叫本**的最高層try**中。

主動觸發異常(丟擲異常)

語法raise [exception [,args ] [,traceback]]

exception是 異常的型別(例如valueerror),

引數是乙個異常引數值。該引數是可選的,如果不提供,異常的引數是"none(空)" 就是異常錯誤資訊

最後乙個引數是跟蹤異常物件,也是可選的

列子:

def not_zero

(num)

:try

:if num ==0:

raise exception

('引數錯誤'

)return num

except exception as e :

print

(e) # 列印異常錯誤資訊

not_zero(0

)

返回異常發生位置

先導入traceback庫

使用traceback.format_exc()函式或者 traceback.print_exc()

format_exc()返回字串

print_exc()則直接給列印出來

使用案例:

import traceback

try:

t=0if t==0:

raise exception

('t==0了',)

except exception as c:

print

(c) traceback.

print_exc()

else

:print

("沒有異常執行"

)finally:

print

("有沒有異常都要執行的"

)

自定義異常

可以通過建立乙個新的異常類來擁有自己的異常。

異常類繼承自 exception 類,可以直接繼承,或者間接繼承

import traceback

class

dj(exception)

: def __init__

(self,value)

: self.value=value

def __str__

(self)

:return

repr

(self.value)

# 注:

repr

()函式簡單來說就是轉字串的

try:3/

0except dj as c:

print

(c) traceback.

print_exc()

else

: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...