我正在创建 JDBCStatement
和ResultSet
s。
Findbugs 正确地指出,close
如果抛出异常,我不会这样做。
所以现在我有:
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
使事情变得不必要的复杂。)