JDBCStatement
およびを作成していますResultSet
。
close
Findbugsは、例外がスローされた場合にこれらを行わないことを正しく指摘しています。
だから今私は持っています:
Statement stmt = null;
ResultSet res = null;
try {
stmt = ...
res = stmt.executeQuery(...);
...
} finally {
try {
if(res != null)
res.close(); // <-- can throw SQLException
} finally {
if(stmt != null)
stmt.close();
}
}
(結果セットや準備済みステートメントなどを開いているだけです...そのため、finally
s のネストはかなり深いです)
多数の結果セットが確実に閉じられるようにするためのより良い方法はありますか?
(余談ですが、Symbian では、destructors/close/release/remove タイプのメソッドがエラーをスローすることは決してありません。これは非常に良い設計上の決定だと思います。私の意見ではclose
、JDBC のすべてのメソッドがスローできるため、不必要に複雑になります。)SQLException