次のような 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 ブロックが my for ループの最初の発生後に実行され、接続が現在閉じられているため、次の発生で例外がスローされることです。
try ブロックが完了する前に finally ブロックが実行される状況に遭遇したことはありません。このシナリオの原因は何ですか?