为什么抛出相同的异常并且对Log结果什么都不做?

时间:2017-05-11 21:26:01

标签: java exception-handling error-logging

在工作中,我的目标是更多地参与代码审查,因为我去了学校学习计算机科学和学习理论等。我的同事都通过工作提供的课程学习java,并且只是为了得到一个最终产品,并不总是以最有效的方式。

无论如何,我们有一个类,我们的程序可以访问sql数据库。每个方法都抛出一个DataSourceException。在该方法中,最后还有一个try catch来处理SQLException。这条线让我很感兴趣。

catch (Exception ex) {
      final String METHOD_NAME = "prepare";
      Log.log(MyClass.class, METHOD_NAME, ex);
      throw new DataSourceException(ex);
}

如果方法签名抛出它,为什么抛出另一个DataSourceException?日志的结果不会被抛出。这意味着我们对包含Log.log的行没有任何作用:它本质上是创建一个对象而从不对它做任何事情?是否应该作为DataSourceException参数传递。对不起,如果这是重复。

TL; DR是上面的代码反模式吗?

1 个答案:

答案 0 :(得分:0)

看起来它的目的是记录异常,然后重新抛出它们,以便某些代码必须实际处理它们。