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