python主動丟擲異常和自定義異常
阿新 • • 發佈:2021-08-05
一、主動丟擲異常 raise
Python 使用 raise 語句丟擲一個指定的異常。
raise 唯一的一個引數指定了要被丟擲的異常。
它必須是一個異常的例項或者是異常的類(也就是 Exception 的子類)。
如下:
x = 10 if x > 5: raise Exception('x 不能大於 5。x 的值為: {}'.format(x))
結果如下:
Traceback (most recent call last): File "test.py", line 3, in <module> raise Exception('x 不能大於 5。x 的值為: {}'.format(x)) Exception: x 不能大於 5。x 的值為: 10
如果你只想知道這是否丟擲了一個異常,並不想去處理它,那麼一個簡單的 raise 語句就可以再次把它丟擲。
try: raise NameError('HiThere') except NameError: print('An exception flew by!') raise
二、自定義異常
自定義類必須繼承Exception,自定義異常如下:
class MySQLError(Exception): def __init__(self, error_info): super(MySQLError, self).__init__(error_info) self.error_info= error_info def __str__(self): return self.error_info
使用如下:
try: raise MySQLError('異常') except MySQLError as e: print(e)
結束!