翼度科技»论坛 编程开发 python 查看内容

python3 traceback模块来追踪和打印异常信息

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
在 Python 3 中,你可以使用标准库中的
  1. traceback
复制代码
模块来追踪和打印异常信息。这个模块提供了许多函数来处理异常,并且能够输出异常的堆栈信息,帮助你定位错误的地方。以下是一个简单的示例代码,演示了如何使用
  1. traceback
复制代码
模块来追踪报错信息:

print_exc 打印异常
  1. import traceback

  2. def function_a():
  3.     return 1 / 0  # 触发一个除零异常

  4. def main_function():
  5.     try:
  6.         function_a()
  7.     except Exception as e:
  8.         # 打印异常信息
  9.         traceback.print_exc()

  10. main_function()
复制代码
在上面的示例中,我们定义了两个函数
  1. function_a
复制代码
  1. main_function
复制代码
。在
  1. function_a
复制代码
中我们故意触发了一个除零异常。在
  1. main_function
复制代码
中,我们使用
  1. try...except
复制代码
结构来捕获异常,并调用
  1. traceback.print_exc()
复制代码
来打印异常信息。
当你运行这段代码时,就会看到包含了异常信息和堆栈跟踪的输出。

extract_tb 提取堆栈
  1. traceback.extract_tb()
复制代码
函数用于提取堆栈跟踪信息,并返回一个包含各个帧信息的列表。每个帧信息都以元组的形式返回,包括文件名、行号、函数名和源代码行。以下是一个简单的示例代码,演示了如何使用
  1. traceback.extract_tb()
复制代码
函数:
  1. import traceback

  2. def function_a():
  3.     return 1 / 0  # 触发一个除零异常

  4. def main_function():
  5.     try:
  6.         function_a()
  7.     except Exception as e:
  8.         # 提取堆栈跟踪信息
  9.         tb_list = traceback.extract_tb(e.__traceback__)
  10.         
  11.         # 打印每个帧的信息
  12.         for tb in tb_list:
  13.             print("File:", tb.filename)
  14.             print("Line:", tb.lineno)
  15.             print("Function:", tb.name)
  16.             print("Code:", tb.line)
  17.             print()

  18. main_function()
复制代码
在上面的示例中,我们定义了两个函数
  1. function_a
复制代码
  1. main_function
复制代码
,其中
  1. function_a
复制代码
故意触发了一个除零异常。在
  1. main_function
复制代码
中,我们使用
  1. try...except
复制代码
结构捕获异常,并通过
  1. traceback.extract_tb(e.__traceback__)
复制代码
提取堆栈跟踪信息。
然后,我们遍历提取到的堆栈跟踪信息列表
  1. tb_list
复制代码
,并打印每个帧的文件名、行号、函数名和源代码行。
当你运行这段代码时,就会看到输出包含了每个帧的详细信息。
到此这篇关于python3 traceback模块来追踪和打印异常信息 的文章就介绍到这了,更多相关python3 traceback打印异常信息 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/python/316234jev.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具