Python中處理unchecked未捕獲異常實例

字號:


    Talk Is Cheap
    和Java一樣,python也提供了對于checked exception和unchecked exception. 對于checked exception,我們通常使用try except可以顯示解決,對于unchecked 異常,其實也是提供回調(diào)或者是鉤子來幫助我們處理的,我們可以在鉤子里面記錄崩潰棧追蹤或者發(fā)送崩潰數(shù)據(jù).
    下面代碼可以實現(xiàn)python unchecked exception回調(diào),并輸出日志信息.
    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的日志管理模塊輸出格式化的異常信息.