是否有可能在python中註冊自定義錯誤處理程序 - 比如PHP中的http://php.net/set_error_handler? 我想觸發我的代碼中的任何地方的錯誤,然後有關於這個(和日誌,以及我需要在處理程序中實現的任何其他事情)的電子郵件通知 - 我在PHP中使用這種模式。python中的錯誤處理程序
也許我不明白python的概念(因爲我是python新手)。感謝幫助。
是否有可能在python中註冊自定義錯誤處理程序 - 比如PHP中的http://php.net/set_error_handler? 我想觸發我的代碼中的任何地方的錯誤,然後有關於這個(和日誌,以及我需要在處理程序中實現的任何其他事情)的電子郵件通知 - 我在PHP中使用這種模式。python中的錯誤處理程序
也許我不明白python的概念(因爲我是python新手)。感謝幫助。
不知道究竟我會看什麼樣的錯誤處理程序是在PHP這個但從
蟒蛇點在Python中,我們有例外,他們的名字例外。當出現問題時我們會拋出異常,或者我們正在等待其他事情,甚至我們只想失敗。異常可以在任何時候被拋出,再後來抓到例如
a = 'int'
b = int(a)
將拋出一個異常,因爲你不能將「詮釋」爲int,所以現在有異常處理要做到這一點
try:
b = int("int")
except ValueError:
print "can't do that"
現在你注意到我們吞下異常,並進行程序的執行,這並不總是最好的主意,有時候我們可能希望提高自己的異常並崩潰
class NotADecimalNumber(Exception): pass
try:
b = int("a")
except ValueError:
raise NotADecimalNumber("'a' is not a decimal number idiot.")
現在我們通過自定義消息得到我們的自定義異常
s /不是數字/不是十進制數字:-) – jimw
編輯它以反映 –
您是否考慮過使用異常處理程序進行此操作? http://docs.python.org/tutorial/errors.html#handling-exceptions –
看看這個 - http://stackoverflow.com/questions/1319615/proper-way-to-declare-custom-exceptions-現代python – Neil
@瑪麗亞Zverina:目標是避免大結構 - 只是觸發錯誤,其餘的將與我的自定義處理程序(發送通知,添加日誌等)完成 似乎尼爾的建議將是有益的 – Serge