1. 程式人生 > 其它 >python主動丟擲異常和自定義異常

python主動丟擲異常和自定義異常

一、主動丟擲異常 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)

結束!