如何在使用Lombok的@Cleanup时捕获异常?

时间:2013-04-03 10:47:37

标签: java resources lombok

我正在使用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?)

之外

非常感谢。

1 个答案:

答案 0 :(得分:2)

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

完全披露:我是Project Lombok开发人员之一。