1. 程式人生 > >python自定義異常和主動丟擲異常(raise)

python自定義異常和主動丟擲異常(raise)

前言

有時候python自帶異常不夠用,如同java,python也可以自定義異常,並且可以手動丟擲。注意,自定義異常只能由自己丟擲。python直譯器是不知道使用者自定義異常是什麼鬼的。

raise語句

主動丟擲異常。
格式:
主動丟擲異常終止程式
raise 異常名稱(‘異常描述’)

raise RuntimeError('testError')

image.png
主動丟擲這個異常,並加以解釋。

自定義異常

python的異常分為兩種.
1、內建異常,就是python自己定義的異常。
2、不夠用,使用者自定義異常,
首先看看python的異常繼承樹
image.png
我們可以看到python的異常有個大基類。然後繼承的是Exception。所以我們自定義類也必須繼承Exception。

#最簡單的自定義異常
class FError(Exception):
    pass

丟擲異常、用try-except丟擲

try:
    raise FError("自定義異常")
except FError as e:
    print(e)

image.png
在這裡給一個簡單的自定義異常類模版。

class CustomError(Exception):
    def __init__(self,ErrorInfo):
        super().__init__(self) #初始化父類
        self.errorinfo=ErrorInfo
    def
__str__(self):
return self.errorinfo if __name__ == '__main__': try: raise CustomError('客戶異常') except CustomError as e: print(e)

image.png