Недавно у меня возникла проблема с выдачей исключения в теме JDBC.
Я синхронизировал объект подключения с помощью двух синхронизированных методов: getConnection () и releaseConnection ().Затем другой метод, который удаляет строку из базы данных следующим образом:
public void removeItem(int itemID) throws ItemNotFound {
PreparedStatement ps = null;
String query = "DELETE * FROM Student.Book WHERE id = ?";
getConnection();
try {
ps = con.prepareStatement(query);
ps.setInt(1, bookID);
ps.executeUpdate();
} catch (SQLException sqle) {
this.close(null, null, ps); // method to close PreparedStatement and ResultSet
releaseConnection();
throw new BookNotFoundException("Book not found!");
} finally {
this.close(null, null, ps);
releaseConnection();
}
}
Все работает хорошо, если не возникает исключение.В случае возникновения исключения в блоке catch после метода releaseConnection () выдается новое BookNotFoundException («Книга не найдена!»).Если я прокомментирую метод releaseConnection (), то он выбрасывает нормально?