我有一个看起来像这样的 try-catch-finally 块:
ResultSet rs;
PreparedStatement ps;
Connection conn;
try {
for (int i = 0; i < list.size(); i++) {
** execute SQL query **
}
} catch (Exception e) {
throw e;
} finally {
** close result set **
** close prepared statement **
** close connection **
}
我已经验证了我的 ArrayList 列表中有 534 个元素。问题是关闭所有内容的 finally 块是在我的 for 循环第一次出现之后执行的,这会导致下一次出现抛出异常,因为连接现在已关闭。
我从未遇到过 finally 块在 try 块完成之前执行的情况。什么可能导致这种情况?