【问题标题】:How to extract information for python error output如何提取python错误输出的信息
【发布时间】:2022-01-07 01:36:48
【问题描述】:

我正在尝试为我正在编写的代码提取信息。比如我写这段代码的时候:

code = "hello"
code[10]

我从 python 得到的输出如下:

IndexError                                Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_24520/526779498.py in <module>
----> 1 code[10]

IndexError: string index out of range

但是当我在代码上实现 try except 循环时:

code  = "hello"

try:
    code[10]
except Exception as e:
    print(e)

我的输出只显示我:

string index out of range

我需要做什么才能提取文本“IndexError”。此外,如果有任何库可用于提取 python 错误以进行日志记录,请告诉我。谢谢。

【问题讨论】:

  • 如果你只想打印异常类型,你可以使用print(e.__class__.__name__)

标签: python python-3.x error-handling


【解决方案1】:

需要获取异常的name属性

code  = "hello"

try:
    code[10]
except Exception as e:
    print(type(e).__name__)

输出:

IndexError

要获取完整的跟踪信息,您可以像这样使用traceback

import traceback

code  = "hello"

try:
    code[10]
except Exception:
    print(traceback.format_exc())

【讨论】:

  • 感谢Patrick,我想问一下是否也可以提取Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_24520/526779498.py in &lt;module&gt; ----&gt; 1 code[10]的信息需要使用哪些命令来调用该特定信息?
  • @codingnewb 我已经编辑了答案以包含用于打印完整回溯的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 2017-07-19
  • 2014-03-25
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多