在python中自定义异常。如何记录错误?

2024-04-16 12:26:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在我的python代码中定制异常。我已将异常类继承到其他类,现在将一些自定义错误定义为从自定义异常类派生的类,如下所示:

class DataCollectorError(Exception): pass
class ParamNullError(DataCollectorError) : pass
class ParamInvalidTypeError(DataCollectorError) : pass

我在python函数中引发这些异常,如下所示:

^{pr2}$

现在我想用logger将错误消息记录到日志文件中,但不知道在哪里做。在

  1. 我应该把那个函数代码放到try-catch中,但是我怎样才能得到那些错误消息呢
  2. 我是否应该在我创建的自定义错误类(DataCollectorError)中执行此操作
  3. 或者在单个错误类中,如ParamNullError

但是我不知道在哪里以及如何得到错误消息来记录它们。在


Tags: 文件函数代码消息定义错误记录exception
1条回答
网友
1楼 · 发布于 2024-04-16 12:26:44

只需使用标准的logging module;它会用开箱即用的异常消息来记录异常。在

当应用程序捕获到异常时,请使用^{} function来记录它;异常将自动添加到日志条目中:

log = logging.getLogger('some-identifier')

try:
    #
except DataCollectorError:
    log.exception('An error occurred')

默认情况下,异常有一个.args元组参数,该元组中的第一个值是您的消息。在

对代码的一些风格反馈:

  • 不要测试== False。而是使用not

    if not isinstance(regIndex, int):
    
  • 引发异常的实例:

    raise ParamNullError("register index is null")
    

    而不是raise class, message样式,以便更容易地迁移到python3。

相关问题 更多 >