Рассмотрим код:
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.createStatement(myQueryString);
rs = ps.executeQuery();
// process the results...
} catch (java.sql.SQLException e) {
log.error("an error!", e);
throw new MyAppException("I'm sorry. Your query did not work.");
} finally {
ps.close();
rs.close();
}
Вышеприведенное не компилируется, потому что оба PreparedStatement.close()
и ResultSet.close()
бросают a java.sql.SQLException
. Так я добавляю блок try/catch в предложение finally? Или переместить тесные утверждения в предложение try? Или просто не беспокоиться о вызове?