当前位置: 首页 > 面试题库 >

获取引起异常的异常描述和堆栈跟踪,全部作为字符串

闻人英韶
2023-03-14
问题内容

我看过很多关于Python中堆栈跟踪和异常的文章。但是还没有找到我所需要的。

我有一段Python 2.7代码可能会引发异常。我想捕获它并将其完整描述和导致错误的堆栈跟踪分配给 字符串
(仅仅是我们在控制台上看到的所有内容)。我需要此字符串才能将其打印到GUI中的文本框中。

像这样:

try:
    method_that_can_raise_an_exception(params)
except Exception as e:
    print_to_textbox(complete_exception_description(e))

问题是: 函数什么complete_exception_description


问题答案:

请参阅traceback模块,特别是format_exc()功能。在这里。

import traceback

try:
    raise ValueError
except ValueError:
    tb = traceback.format_exc()
else:
    tb = "No error"
finally:
    print tb


 类似资料:
  • 问题内容: Java的e.printStackTrace()不会打印内部异常的堆栈跟踪的所有详细信息。 有没有现成的方法来生成字符串形式的完整堆栈跟踪?(除了自己格式化外) 编辑 我刚刚发现printStackTrace()的作用-显然,它过滤掉的堆栈帧正是内部异常和外部异常共同的帧。因此,实际上这是我想要的,而不是“完整”堆栈跟踪。 问题答案: 我最终滚动了自己的代码(我采用了Throwable

  • 问题内容: 如何将异常的堆栈跟踪信息打印到stderr以外的流上?我发现的一种方法是使用getStackTrace()并将整个列表打印到流中。 问题答案: 可以接受or或参数: 也就是说,请考虑将SLF4J之类的记录器接口与LOGBack或log4j之类的记录实现一起使用。

  • 我有两项服务-和<代码>服务1通过SpringREST模板调用一些API。现在

  • 异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程。 看下面用于测试 printStackTrace 的例子程序。 上面程序中 main 方法调用 firstMethod,firstMethod 调用 secondMethod,secondMethod 调用 t

  • 问题内容: 最近,我问是否要报告捕获到的异常的文本。出乎意料的是,大多数答案都误解了我的问题,并以为我在问是否要报告堆栈跟踪以获取捕获的异常,这表明这样做是正常的。所以我要问一个后续问题。 在例外情况下,应该或不应该在什么情况下报告堆栈跟踪?通过“报告”,我包括要求一个日志记录框架为您记录堆栈跟踪 我不问是否报告 的东西 。我在问那个报告是否应该包括堆栈跟踪。 问题答案: 它取决于上下文。例如,当

  • 问题内容: 这可能是一个非常幼稚的问题。 我曾经相信Java 中的a 总是 包含堆栈跟踪。这是正确的吗? 现在看起来我捕获了 没有 堆栈跟踪的异常。是否有意义?是否 可以 在没有堆栈跟踪的情况下捕获异常? 问题答案: 无需堆栈跟踪就可以捕获Java中的Throwable对象: 构造一个具有指定详细消息,原因,启用或禁用原因,启用或禁用 可写堆栈跟踪 的新throwable 。 填写执行堆栈跟踪。此