python标准库介绍——24 traceback 模块详解
==traceback 模块== [Example 2-18 #eg-2-18] 展示了 ``traceback`` 模块允许你在程序里打印异常的跟踪返回 (Traceback)信息, 类似未捕获异常时解释器所做的. 如 [Example 2-18 #eg-2-18] 所示. ====Example 2-18. 使用 traceback 模块打印跟踪返回信息====[eg-2-18] ``` File: traceback-example-1.py # note! importing the traceback module messes up the # exception state, so you better do that here and not # in the exception handler # 注意! 导入 traceback 会清理掉异常状态, 所以 # 最好别在异常处理代码中导入该模块 import traceback try: raise SyntaxError, "example" except: traceback.print_exc() *B*Traceback (innermost last): File "traceback-example-1.py", line 7, in ? SyntaxError: example*b* ``` [Example 2-19 #eg-2-19] 使用 ``StringIO`` 模块将跟踪返回信息放在字符串中. ====Example 2-19. 使用 traceback 模块将跟踪返回信息复制到字符串====[eg-2-19] ``` File: traceback-example-2.py import traceback import StringIO try: raise IOError, "an i/o error occurred" except: fp = StringIO.StringIO() traceback.print_exc(file=fp) message = fp.getvalue() print "failure! the error was:", repr(message) *B*failure! the error was: 'Traceback (innermost last):\012 File "traceback-example-2.py", line 5, in ?\012IOError: an i/o error occurred\012'*b* ``` 你可以使用 ``extract_tb`` 函数格式化跟踪返回信息, 得到包含错误信息的列表, 如 [Example 2-20 #eg-2-20] 所示. ====Example 2-20. 使用 traceback Module 模块编码 Traceback 对象====[eg-2-20] ``` File: traceback-example-3.py import traceback import sys def function(): raise IOError, "an i/o error occurred" try: function() except: info = sys.exc_info() for file, lineno, function, text in traceback.extract_tb(info[2]): print file, "line", lineno, "in", function print "=>", repr(text) print "** %s: %s" % info[:2] *B*traceback-example-3.py line 8 in ? => 'function()' traceback-example-3.py line 5 in function => 'raise IOError, "an i/o error occurred"' ** exceptions.IOError: an i/o error occurred*b* ```
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术