为什么抛出相同的异常而不对日志结果执行任何操作?
Why throw the same Exception and do nothing with Log result?
在工作中,我的目标是更多地参与代码审查,因为我上了计算机科学和学习理论等学校。我的同事都通过工作提供的课程学习了 java,只是为了获得最终产品而编程,并不总是以最有效的方式。
无论如何,我们有一个 class 供我们的程序访问 sql 数据库。每个方法都会抛出一个 DataSourceException。在该方法中,还有一个 try catch finally 来处理 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 上面的代码是反模式吗?
看起来它的目的是记录异常,然后重新抛出它们,以便某些人的代码必须实际处理它们。
在工作中,我的目标是更多地参与代码审查,因为我上了计算机科学和学习理论等学校。我的同事都通过工作提供的课程学习了 java,只是为了获得最终产品而编程,并不总是以最有效的方式。
无论如何,我们有一个 class 供我们的程序访问 sql 数据库。每个方法都会抛出一个 DataSourceException。在该方法中,还有一个 try catch finally 来处理 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 上面的代码是反模式吗?
看起来它的目的是记录异常,然后重新抛出它们,以便某些人的代码必须实际处理它们。