raise語句
-
- 1. raise語句
- 2. 特殊情況
1. raise語句
- 為了引發異常,可以使用一個類(應該是Exception的子類)或者執行個體參數調用raise語句。
- raise文法格式如下:
語句中 Exception 是異常的類型(例如,NameError)參數标準異常中任一種,args 是自已提供的異常參數。
最後一個參數是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象。
2. 特殊情況
如果捕捉到了異常,但是又想重新引發它,即傳遞異常不進行處理,可以調用不帶參數的raise。
示例:
class MuffledCalculator:
muffled = False
def calc(self,expr):
try:
return eval(expr)
except ZeroDivisionError:
if self.muffled:
print("Division by zero is illegal")
else:
raise
這是一個能屏蔽“ZeroDivisionError”(除零錯誤)的電腦類。如果這個類被激活,那麼電腦就會列印錯誤資訊,而不是讓異常傳播。如果在在與使用者進行互動的過程中使用,那麼這就有用了,但是如果在程式内部使用,引發異常會更好些。是以此時“屏蔽”機制可以關掉。