我正在创建JDBC语句和ResultSet.
Findbugs正确地指出,如果抛出异常,我不会关闭它们.
所以现在我有:
Statement stmt = null;
ResultSet res = null;
try {
stmt = ...
res = stmt.executeQuery(...);
...
} finally {
try {
if(res != null)
res.close(); //
} finally {
if(stmt != null)
stmt.close();
}
}
(只有我有更多的结果集和准备好的陈述等等……所以我的最后一个嵌套是相当深的)
必须有更好的方法来确保关闭大量结果集?
(旁白:在Symbian中,他们永远不会让析构函数/ close / release / remove -type方法抛出任何错误.我认为这是一个非常好的设计决策.在我看来,JDBC中所有关闭的方法都会抛出SQLException会使事情变得不必要地复杂化. )