【Python】traceback 模块_跟踪异常返回信息

异常捕获模块(traceback)

  traceback.format_exc()  以字符串返回异常信息

  traceback.print_exc()  直接打印出异常信息

if __name__ == "__main__":
    try:
        1 / 0
    except Exception as e:
        # format_exc()返回异常信息字符串,print_exc()则直接给打印异常信息
        traceback.print_exc()
        print(traceback.format_exc())

 执行结果:  

 

 

 

if __name__ == "__main__":
    try:
        1 / 0
    except Exception as e:
        # print_exc()则直接给打印异常信息
        # traceback.print_exc()
        # 填入file参数,把异常信息填入到指定的file里
        traceback.print_exc(file=open("a.log", "w"))
        # format_exc()返回异常信息字符串;
        print(traceback.format_exc())

 

 

执行结果:  

 

 

sys.exc_info()方法:获取异常信息

sys.exc_info() 方法会将当前的异常信息以元组的形式返回,该元组中包含 3 个元素:
  type:异常类型的名称
  value:捕获到的异常实例
  traceback:是一个 traceback 对象。

 

import sys

if __name__ == "__main__":
    try:
        1/0
    except:
        log.error(sys.exc_info())

 

执行结果:  

 

 

 

 

 

 

拓展


 

loguru 中 @log.catch 装饰器 代替 Traceback

@log.catch
def a():
    return 1/0

if __name__ == "__main__":
    a()

 

 

 

 

 

 

posted @ 2022-05-06 11:05  Phoenixy  阅读(176)  评论(0编辑  收藏  举报