2
我使用的是Lombok's @Cleanup,即使當我發現它非常有用時,我也無法弄清楚如何捕獲由使用資源的主要代碼塊引發的異常。如何在使用龍目島的@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();
}
}
隨着龍目島,我可以簡化代碼這樣上面:
@Cleanup("closeConnection") ScriptRunner runner = scriptRunner();
for (Resource sqlFile : sqlScripts) {
runScript(sqlFile.getFile(), runner);
}
但我會錯過捕捉可能出現的任何異常的可能性當for循環執行時。有沒有什麼辦法可以和龍目島一起優雅地做到這一點? (即不是編程方式使用「try/catch語句?等)
非常感謝提前。
在什麼地方try-catch塊需要去整個塊周圍從@Cleanup註釋範圍的結束或者一個更有限的範圍? –
我會用盡可能小的範圍。 –
我相信Lombok會添加一個try {..無論如何,我們的結論是,在這種情況下,使用Lombok更加簡潔,因爲兩個選項的詳細程度幾乎相同。感謝Roel的回答。 –