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)

結束!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章