一、主動拋出異常 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)
結束!