Talk Is Cheap
和Java一樣,python也提供了對於checked exception和unchecked exception. 對於checked exception,我們通常使用try except可以顯示解決,對於unchecked 異常,其實也是提供回調或者是鉤子來協助我們處理的,我們可以在鉤子裡面記錄崩潰棧追蹤或者發送崩潰資料.
下面代碼可以實現python unchecked exception回調,並輸出日誌資訊.
Show Me The Code
複製代碼 代碼如下:
#!/usr/bin/env python
# coding=utf-8
import os, sys
import logging
logger = logging.getLogger(__name__)
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
def handle_exception(exc_type, exc_value, exc_traceback):
if issubclass(exc_type, KeyboardInterrupt):
sys.__excepthook__(exc_type, exc_value, exc_traceback)
return
logger.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = handle_exception
if __name__ == "__main__":
raise RuntimeError("Test unhandled Exception")
相關解釋
1.上述忽略處理終端下鍵盤按Ctrl + C 終止異常.
2.上述使用python的日誌管理模組輸出格式化的異常資訊.