使用raise語句自己觸發異常

2021-08-08 20:32:59 字數 1439 閱讀 4338

我們可以使用raise語句自己觸發異常

raise語法格式如下:

raise

[exception

[,args

[,traceback

]]]

語句中exception是異常的型別(例如,nameerror)引數是乙個異常引數值。該引數是可選的,如果不提供,異常的引數是"none"。

最後乙個引數是可選的(在實踐中很少使用),如果存在,是跟蹤異常物件。

乙個異常可以是乙個字串,類或物件。 python的核心提供的異常,大多數都是例項化的類,這是乙個類的例項的引數。

定義乙個異常非常簡單,如下所示:

def

functionname

(level

):if

level

<1:

raise

exception

("invalid level!"

,level

)# 觸發異常後,後面的**就不會再執行

注意:為了能夠捕獲異常,"except"語句必須有用相同的異常來丟擲類物件或者字串。

例如我們捕獲以上異常,"except"語句如下所示:

try

:正常邏輯

except

"invalid level!"

:觸發自定義異常

else

:其餘**

#!/usr/bin/python

# -*- coding: utf-8 -*-

# 定義函式

defmye

(level

):if

level

<1:

raise

exception

("invalid level!"

,level

)# 觸發異常後,後面的**就不會再執行

try:

mye(0)

// 觸發異常

except

"invalid level!"

:print

1else

:print

2

執行以上**,輸出結果為:

$ python test

.py

traceback

(most recent call

last

):file

"test.py"

,line 11,

inmye(0

)file

"test.py"

,line 7,

inmye

raise

exception

("invalid level!"

,level

)exception:(

'invalid level!',0

)

python觸發異常 raise語句

rasie someexception args traceback someexception是觸發異常的名字。存在的話可以是字串,類或者例項。args為可選,可以是引數 值等等傳給異常,args以元組傳入,如果是字串就自動轉換成元組,如果是單獨物件,就轉換成單個元素的元祖傳入。traceback...

python之丟擲異常(raise語句)

用 raise 能夠主動丟擲異常,使用 raise 異常名 丟擲該類異常 也可以單獨使用 raise 再次引發剛發生的異常 try 1 0except print 錯誤 同時能夠指定丟擲異常的描述資訊 raise indexerror 索引錯誤 所以這樣子就用 raise 異常名 from 異常類 ...

python中異常處理 raise的使用

python中異常處理 raise的使用 當程式出現錯誤,python會自動引發異常,也可以通過raise顯示地引發異常。一旦執行了raise語句,raise後面的語句將不能執行。演示raise用法 try s none if s is none print s 是空物件 raise nameerr...