gpt4 book ai didi

java - 抛出异常与日志记录

转载 作者:IT老高 更新时间:2023-10-28 20:29:03 26 4
gpt4 key购买 nike

下面的编码方式是好的做法吗?

try {
//my code here
} catch (Exception e) {
logger.error("Some error ", e);
throw new MyCustomException("Some error ", e);
}

而且,我应该……

  • 只使用记录器?
  • 只抛出异常?
  • 两者都做?

我知道使用 throw 我可以在调用堆栈的另一部分捕获异常,但也许额外的日志记录有一些隐藏的好处并且也很有用。

最佳答案

通常,我认为您应该记录 重新抛出。两者都做只会导致每一层一次又一次地记录异常,这使得日志难以阅读。更糟糕的是,很难弄清楚您实际上有多少错误 - 是七个错误,还是记录了相同错误的应用程序的七个层?

这意味着如果您抑制异常,您将记录它并说明您认为不值得重新抛出的原因。

另一方面,如果你重新抛出异常,你知道它要么被捕获并被抑制(在这种情况下,捕获器记录异常以及它被抑制的原因),或者它会从您的应用程序中冒出并被应用程序容器捕获,该容器将捕获并记录异常。每个异常在日志中只显示一次。

关于java - 抛出异常与日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com