繁体   English   中英

我们故意引发异常时应记录错误

[英]should the error be logged when we are intentionally raising exception

我做了一个自定义的异常,所以我的问题是在引发错误之前我应该​​记录该错误。

class MyException(Exception):
    pass


if not someList:
    # do I need to log here
    logger.error("something went wrong")
    raise MyException("Something wrong.")

请在错误记录的位置(我扔的地方或我抓住的地方)研究这个基于意见的问题。 它适用于任何语言的异常/错误处理。

通常,此想法是仅记录一次错误-

  • 为了避免更多的IO操作,
  • 没有任何附加值将不会增加您的代码大小。
  • 如果将错误日志记录在错误的源头,则跟踪将变得很困难(仅包含错误消息而没有堆栈跟踪)-很难找到接收到异常的调用方。

在这种情况下,取决于您是在某个地方捕获异常还是将异常直接抛出。

您可以看到上面的问题已关闭,并带有一条基于观点的注释。 因此,与其说严格的约定,不如说是您的意见和用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM