У меня есть следующий код в Java:
if(!conn.isClosed())
{
conn.close();
}
Вместо работы я награждаюсь:
java.sql.SQLException: соединение уже закрыто
Мой объект подключения - Snaq.db.CacheConnection
Я проверил JavaDocs для isClosed, и они утверждают, что:
Этот метод обычно не может быть вызван
определить, есть ли связь с
База данных действительна или недействительна.
Типичный клиент может определить, что
соединение недействительно при перехвате любого
исключения, которые могут быть выброшены при
операция предпринята.
Итак, мои вопросы:
1) Что хорошего в том, что JDBC isClosed ()? С каких это пор мы используем исключения в Java для проверки действительности?
2) Какой правильный шаблон для закрытия базы данных? Должен ли я просто закрыть и проглотить исключения?
3) Есть идеи, почему SnaqDB закрывает соединение? (Мой бэкэнд это Postgres 8.3)