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

直接打印当前异常的堆栈信息
在捕获异常时,使用traceback.print_exc()可以将异常的回溯信息直接输出到控制台:
try:
1 / 0
except Exception:
traceback.print_exc()
获取异常信息字符串
如果想把异常信息保存为字符串而不是直接打印,可以使用traceback.format_exc():
try:
1 / 0
except Exception as e:
error_msg = traceback.format_exc()
print(error_msg)
只打印指定异常信息
也可以手动传入异常类型和值,配合traceback.print_exception()进行输出:
try:
1 / 0
except Exception as e:
traceback.print_exception(type(e), e, e.__traceback__)
注意:使用完e.__traceback__后建议手动释放引用(设为None),避免影响垃圾回收。
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
立即学习“Python免费学习笔记(深入)”;
日志记录中输出异常
在实际项目中,常结合logging模块记录异常:
import loggingimport traceback
logging.basicConfig(level=logging.ERROR)
try:
1 / 0
except Exception:
logging.error("发生异常:%s", traceback.format_exc())
这样可以在日志中清晰看到错误来源和调用链。
基本上就这些常用方法,根据场景选择打印或记录即可。










