2

我正在使用Lombok 的 @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 循环执行时可能出现的任何异常的可能性。有没有办法用 Lombok 优雅地做到这一点?(即除了以编程方式使用“try /catch?”

首先十分感谢。

4

1 回答 1

3

不,如果你想处理异常,你需要捕获它,为此你需要一个 try-catch 块。

完全披露:我是Lombok 项目的开发人员之一。

于 2013-04-03T13:28:12.680 回答