34 python的異常處理丟擲和自定義

2021-10-25 07:37:11 字數 2572 閱讀 2548

# 把錯誤內容給列印出來

print

("indexerror:"

, e)

程式輸出:

test exception

indexerror

indexerror: list index out of range

# 如果我們不知道異常的型別

list1 =

try:

print

(list1[3]

)except

:print

("未知異常"

)try

:print

(list1[3]

)except exception as e:

# 所有異常都繼承自exception這樣乙個類,所以我們統一捕獲這個異常

print

("未知異常:"

, e)

程式輸出:

未知異常

未知異常: list index out of range

# except語句可以有多條

list1 =

try:

print

(list1[3]

)except nameerror:

print

("名字錯誤"

)except indexerror:

print

("名字錯誤"

)except

:print

("未知異常"

)

程式輸出:

名字錯誤

# except語句後面的else語句和finally語句

list1 =

try:

print

(list1[3]

)except exception as e:

print

("未知異常:"

, e)

else

:print

("沒有丟擲異常"

)finally

:print

("任何情況都進入1"

)try

:pass

except

:pass

else

:print

("沒有丟擲異常"

)finally

:print

("任何情況都進入2"

)

程式輸出:

未知異常: list index out of range

任何情況都進入1

沒有丟擲異常

任何情況都進入2

異常的丟擲方式,直接丟擲異常,說白了就是丟擲乙個物件。

自定義異常,我們自己自定義乙個類,只要繼承exception就可以了,你這個類就可以被丟擲為異常;當然了,你也可以直接去繼承索引錯誤、名字錯誤那些類,也沒有問題。

# 自定義異常

class

xerror

(exception)

:def

__init__

(self, value ="")

:# 在丟擲乙個異常的時候,可以傳乙個值進來

self.value = value

# 用來print異常資訊

def__str__

(self)

:return

"xerror :"

+str

(self.value)

# 丟擲我們自定義的異常

try:

raise xerror(

"test error"

)# 丟擲異常

except xerror as e:

print

(e)

程式輸出:

xerror :test error
我們過載一下__str__這樣乙個函式,過載這個函式的目的,主要是為了使得我們這個異常能直接被列印出來,__str__的目的是能直接print我們這個異常,因為異常有很多處理就是把這個錯誤給它顯示出來。

python 丟擲 python丟擲異常的方法

python丟擲異常的方法 閱讀 89 異常是python物件,表示乙個錯誤。當python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。常見異常 attributeerror 呼叫不存在的方法引發的異常 eoferror 遇到檔案末尾引發的異常 importerror 匯入模組出錯引發的...

python 丟擲異常 python 異常

異常的概念 捕獲異常 異常的傳遞 丟擲異常 程式在執行時,如果 python 直譯器 遇到 到乙個錯誤,會停止程式的執行,並且提示一些錯誤資訊,這就是 異常 程式停止執行並且提示錯誤資訊 這個動作,我們通常稱之為 丟擲 raise 異常 程式開發時,很難將 所有的特殊情況 都處理的面面俱到,通過 異...

60 python 異常處理中丟擲異常

class test object def init self,switch self.switch switch 開關 defcalc self,a,b try return a b except exception as result if self.switch print 捕獲開啟,已經捕獲...