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

如何记录python异常?

司马庆
2023-03-14
问题内容

如何在Python中记录异常?

我查看了一些选项,发现可以使用以下代码访问实际的异常详细信息:

import sys
import traceback

try:
    1/0
except:
    exc_type, exc_value, exc_traceback = sys.exc_info()
    traceback.print_exception(exc_type, exc_value, exc_traceback)

我想以某种方式将字符串print_exception()抛出到stdout以便我可以记录它。


问题答案:

在Python 3.5中,您可以在exc_info参数中传递异常实例:

import logging
try:
    1/0
except Exception as e:
   logging.error('Error at %s', 'division', exc_info=e)


 类似资料:
  • 问题内容: 约书亚·布洛赫(Joshua Bloch)在他的《有效Java》中写道: “使用Javadoc @throws标记来记录方法可以抛出的每个未经检查的异常,但是请不要使用throws关键字在方法声明中包括未经检查的异常。” 听起来确实很合理,但是如何找出我的方法会抛出哪些未经检查的异常? 让我们考虑以下课程: 现在,我记录了HorribleException,但是很明显,foo方法也可以

  • 问题内容: 现在在我的应用程序中,某些时候我们正在将一些繁重的工作记录到日志文件中。 基本上仅用于日志记录,我们先创建可用数据的JSON,然后登录到Log文件。这是以JSON格式记录数据的业务要求。 现在从可用数据创建JSON,然后登录到FILE需要花费大量时间,并影响原始请求的返回时间。现在的想法是改善环境。 我们讨论的一件事是使用以下方法创建线程池 在我们的代码中,然后向其提交任务,该任务会将

  • 我有多个方法做基本相同的事情,接收一个对象,将字段传递给查询并返回结果。

  • 问题内容: 我正在写一个轻量级的类,其属性旨在可公开访问,并且有时仅在特定的实例中被覆盖。就此而言,Python语言中没有为类属性或任何类型的属性创建文档字符串的规定。记录这些属性的预期方式和受支持方式是什么?目前,我正在做这种事情: 这将导致该类的docstring包含初始的标准docstring部分,以及通过对的扩展分配为每个属性添加的行。 尽管在文档字符串样式指南中似乎并未明确禁止使用这种样

  • 问题内容: 我们将Spring与slf4j和hibernate结合使用,我试图找到一种自动记录异常和错误的方法(即,无需在每个类中启动调试器的实例),以便它可以捕获抛出的任何错误或异常,并且在日志中获取类和方法的名称, 我读了一篇关于为此使用方面和拦截器的简短说明,因此您能否为我提供一些实现此目的的详细方法, 问候, 问题答案: 异常方面可能看起来像这样: spring会议: 编辑: 如果您希望记

  • 问题内容: 我想检查特定背景文件中的错误,但是标准错误流由前台程序控制,并且问题中文件中的错误未显示。不过,我可以使用该模块并将输出写入文件。我想知道如何使用它来记录所有异常,错误及其回溯。 问题答案: 记录程序中引发的 任何 异常可能是一个坏主意,因为Python还将异常用于正常控制流。 因此,您应该只记录 未捕获的 异常。一旦有了异常对象,就可以使用记录器的方法轻松地执行此操作。 要处理所有未

  • 我正在写一个脚本,连接到N主机通过SSH...查询第三方系统和提取数据,然后显示所有收集的数据在一定的格式。 我希望将脚本执行的所有操作以及在控制台和日志文件中遇到的任何异常记录下来,这样用户就可以看到脚本运行时发生了什么(如果有人使用了Ansible,那么就像我们在运行playbooks时在控制台和日志中得到的输出一样) 预期产出 null 请给出建议,如果可能的话,用一个使用该技术的示例脚本。

  • 问题内容: 我想去日记(系统化)。 到目前为止,我只发现了读取日志记录的python模块(不是我想要的)或像这样工作的模块: 问题答案: python-systemd有一个JournalHandler可与日志框架一起使用。 从文档中: