debug.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import traceback
def dump(e: Exception):
#取得錯誤類型
error_class = e.__class__.__name__
#取得詳細內容
detail = str(e)
#取得Call Stack
cl, exc, tb = sys.exc_info()
#取得Call Stack的最後一筆資料
lastCallStack = traceback.extract_tb(tb)[-1]
#取得發生的檔案名稱
fileName = lastCallStack[0]
#取得發生的行號
lineNum = lastCallStack[1]
#取得發生的函數名稱
funcName = lastCallStack[2]
errMsg = "File \"{}\", line {}, in {}: [{}] {}".format(fileName, lineNum, funcName, error_class, detail)
print(errMsg)
if __name__ == "__main__":
try :
111/0
except Exception as e:
dump(e)
Output
$ ./debug.py
File "./debug.py", line 26, in <module>: [ZeroDivisionError] division by zero
Reference
留言
張貼留言