我正在使用Lombok's @Cleanup,即使我发现它非常有用,我也无法弄清楚如何捕获使用该资源的主要代码块抛出的异常。
我的代码如下:
ScriptRunner runner = null;
try {
runner = scriptRunner();
for (Resource sqlFile : sqlScripts) {
runScript(sqlFile.getFile(), runner);
}
} catch (Exception ex) {
log.error("Error found when attempting to run script", ex);
} finally {
if (runner != null) {
runner.closeConnection();
}
}
使用Lombok,我可以通过这种方式简化代码:
@Cleanup("closeConnection") ScriptRunner runner = scriptRunner();
for (Resource sqlFile : sqlScripts) {
runScript(sqlFile.getFile(), runner);
}
但是我会错过捕获for循环执行时可能出现的任何异常的可能性。有没有办法以优雅的方式与龙目岛一起做到这一点? (即,除了以编程方式使用“try / catch?)
之外非常感谢。