一尘不染

抛出异常与日志记录

java

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

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

而且,我应该

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

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


阅读 286

收藏
2020-12-03

共1个答案

一尘不染

在某些情况下,我会同时使用日志记录和引发异常。特别是,它在API中很有用。通过抛出异常,我们允许调用者对其进行处理,并通过记录日志,我们可以自行确定其根本原因。

而且,如果调用者在同一系统中,则如果我们在每个捕获中添加日志,则将有重复的日志。

2020-12-03