使用traceback.print_exc()可直接打印异常堆栈;2. 用traceback.format_exc()获取异常信息字符串;3. traceback.print_exception()支持手动传入异常类型、值和traceback对象;4. 结合Logging模块记录异常便于日志分析,注意及时释放__traceback__引用避免内存泄漏。

python中输出异常信息主要通过traceback模块来实现,当程序发生异常时,traceback能帮助我们打印详细的调用栈信息,便于定位问题。以下是几种常见的使用方式。
直接打印当前异常的堆栈信息
在捕获异常时,使用traceback.print_exc()可以将异常的回溯信息直接输出到控制台:
import traceback
try:
1 / 0
except Exception:
traceback.print_exc()
获取异常信息字符串
如果想把异常信息保存为字符串而不是直接打印,可以使用traceback.format_exc():
import traceback
try:
1 / 0
except Exception as e:
Error_msg = traceback.format_exc()
print(error_msg)
只打印指定异常信息
也可以手动传入异常类型和值,配合traceback.print_exception()进行输出:
import traceback
try:
1 / 0
except Exception as e:
traceback.print_exception(type(e), e, e.__traceback__)
注意:使用完e.__traceback__后建议手动释放引用(设为None),避免影响垃圾回收。
立即学习“Python免费学习笔记(深入)”;
日志记录中输出异常
在实际项目中,常结合logging模块记录异常:
import logging
import traceback
logging.basicConfig(level=logging.ERROR)
try:
1 / 0
except Exception:
logging.error(“发生异常:%s”, traceback.format_exc())
这样可以在日志中清晰看到错误来源和调用链。
基本上就这些常用方法,根据场景选择打印或记录即可。


