Talk Is Cheap
和Java一樣,python也提供了對(duì)于checked exception和unchecked exception. 對(duì)于checked exception,我們通常使用try except可以顯示解決,對(duì)于unchecked 異常,其實(shí)也是提供回調(diào)或者是鉤子來幫助我們處理的,我們可以在鉤子里面記錄崩潰棧追蹤或者發(fā)送崩潰數(shù)據(jù).
下面代碼可以實(shí)現(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")
相關(guān)解釋
1.上述忽略處理終端下鍵盤按Ctrl + C 終止異常.
2.上述使用python的日志管理模塊輸出格式化的異常信息.
更多信息請(qǐng)查看IT技術(shù)專欄