在 JDBC literatur 我经常遇到像这样的片段
void databaseCall() {
Connection con = null;
Statement statement = null
try {
con = getConnection(...);
statement = con.createStatement(...);
// do some query
} catch (SQLException e) {
// bla bla
} finally {
try {con.close();} catch (Exception e1) {}
try {statement.close();} catch (Exception e1) {}
}
}
我知道明确地关闭连接和语句是最佳实践,但是,在这种情况下,显然资源con
和statement
方法完成时将被关闭,即当try
块完成时。块中的close
语句finally
真的有必要吗?即使我们没有显式释放资源,当方法完成时它们不会以任何方式关闭吗?