天天看點

Python學習:raise語句

raise語句

    • 1. raise語句
    • 2. 特殊情況

1. raise語句

  1. 為了引發異常,可以使用一個類(應該是Exception的子類)或者執行個體參數調用raise語句。
  2. raise文法格式如下:

語句中 Exception 是異常的類型(例如,NameError)參數标準異常中任一種,args 是自已提供的異常參數。

最後一個參數是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象。

Python學習:raise語句

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”(除零錯誤)的電腦類。如果這個類被激活,那麼電腦就會列印錯誤資訊,而不是讓異常傳播。如果在在與使用者進行互動的過程中使用,那麼這就有用了,但是如果在程式内部使用,引發異常會更好些。是以此時“屏蔽”機制可以關掉。

Python學習:raise語句