Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 321|回复: 0

Python 打印错误行号

[复制链接]

254

主题

363

帖子

2431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2431
发表于 2025-3-1 04:05:04 | 显示全部楼层 |阅读模式
Python可以打印跟踪出来的错误行号。
如果你想打印Traceback(错误堆栈跟踪),你可以使用traceback模块。traceback模块提供了多种方式来捕获、格式化和打印错误堆栈。如果你想打印出Traceback的行数(即错误发生在哪一行),你可以使用traceback.extract_tb()函数。

以下是如何使用traceback模块打印Traceback的行数的一个示例:

  1. import traceback

  2. def example_function():
  3.     raise ValueError("An error occurred")

  4. try:
  5.     example_function()
  6. except Exception as e:
  7.     # 获取当前的堆栈跟踪
  8.     tb = traceback.extract_tb(e.__traceback__)
  9.     # 打印堆栈跟踪的每一项,包括文件名、行号、函数名和代码行
  10.     for item in tb:
  11.         print(f"File: {item.filename}, Line: {item.lineno}, Function: {item.name}, Code: {item.line.strip()}")
复制代码
traceback.extract_tb(e.__traceback__)会返回一个包含Traceback条目的列表,每个条目都是一个traceback.FrameSummary对象,其中包含了文件名、行号、函数名和代码行。通过遍历这个列表,你可以打印出每一项的详细信息。
如果你只关心文件名和行号,可以简化输出:
  1. import traceback

  2. def example_function():
  3.     raise ValueError("An error occurred")

  4. try:
  5.     example_function()
  6. except Exception as e:
  7.     # 获取当前的堆栈跟踪并格式化为字符串
  8.     stack_trace = traceback.format_exc()
  9.     print(stack_trace)
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-16 04:57 , Processed in 0.013481 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表