異常處理是日常操作了,但是有時候不能只能打印我們處理的結果,還需要將我們的異常打印出來,這樣更直觀的顯示錯誤
try:
1/0
except Exception,e:
print e
如果這樣輸出結果是integer division or modulo by zero,只知道是報了這個錯,但是卻不知道在哪個文件哪個函數哪一行報的錯
下面來介紹traceback模塊來進行處理
try:
1/0
except Exception,e:
traceback.print_exec()
輸出爲:
Traceback (most recent call last):
File “test_traceback.py”, line 3, in
1/0
ZeroDivisionError: integer division or modulo by zero
traceback.print_exc(),traceback.format_exc(),traceback.print_exception()三者的區別
1、print_exc() # 是對異常棧輸出
2、format_exc() # 是把異常棧以字符串的形式返回,print(traceback.format_exc()) 就相當於traceback.print_exc()
3、print_exception() # traceback.print_exc()實現方式就是traceback.print_exception(sys.exc_info()),可以點sys.exc_info()進去看看實現