在工作中,我的目标是更多地参与代码审查,因为我去了学校学习计算机科学和学习理论等。我的同事都通过工作提供的课程学习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是上面的代码反模式吗?
答案 0 :(得分:0)
看起来它的目的是记录异常,然后重新抛出它们,以便某些代码必须实际处理它们。