【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()
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------