Может ли кто-нибудь подумать о разумной причине, почему SQLException
является проверенным исключением?
Да, в запросе может возникнуть синтаксическая ошибка
Да, связь, возможно, умерла
Да, может быть проблема разрешения
Etc и т.д. Blah blah blah
Но практически в 100% случаев (когда вы работаете на производстве), проблем нет.
Если есть проблема, вызывающий код не может ничего сделать для восстановления, поэтому по этой причине его следует отключить.
Проверяется создание массивов поверхностных блоков try catch
по всему коду, так как все, кто был вовлечен в проект, использующий JDBC, подтвердят. Кодовый беспорядок является значительным.
Из-за эзотерической природы SQL, множество причин, по которым вы можете получить SQLException и их сложность, означает, что вы в принципе не можете восстановить, если исключение не вызвано временной сетевой проблемой, но даже тогда при синхронном вызове, так или иначе, потому что вы не можете ждать бесконечно, чтобы проблема сети была решена, поэтому вам придется выполнить транзакцию.
Как правило, вызов SQL выглядит следующим образом:
try {
// make some SQL call(s)
} catch {SQLException e) {
// log the exception
return; // and give up
}
Такой код не добавляет значения. Там ничего разумного вы не можете сделать, чтобы выздороветь. Возможно, вы также можете создать исключение для среды выполнения, т.е. SQLException должен быть исключением (непроверенным).