Python debug message

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

留言