我們可以使用raise語句自己觸發異常
raise語法格式如下:
raise語句中exception是異常的型別(例如,nameerror)引數是乙個異常引數值。該引數是可選的,如果不提供,異常的引數是"none"。[exception
[,args
[,traceback
]]]
最後乙個引數是可選的(在實踐中很少使用),如果存在,是跟蹤異常物件。
乙個異常可以是乙個字串,類或物件。 python的核心提供的異常,大多數都是例項化的類,這是乙個類的例項的引數。
定義乙個異常非常簡單,如下所示:
def注意:為了能夠捕獲異常,"except"語句必須有用相同的異常來丟擲類物件或者字串。functionname
(level
):if
level
<1:
raise
exception
("invalid level!"
,level
)# 觸發異常後,後面的**就不會再執行
例如我們捕獲以上異常,"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!"
1else
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...