Когда использовать catch и когда использовать throws в обработке исключений
Вопрос не в синтаксисе обработки исключений, но это все о том, какое место лучше написать блок catch для исключения в его путешествии по методам через распространение.
public boolean validateUser(String username, String password) throws SQLException {
Connection conn = dataSource.getConnection();
boolean result = false;
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM USERS WHERE USERNAME=? AND PASSWORD=?");
pstmt.setString(1, username);
pstmt.setString(2, password);
result = pstmt.executeQuery().next();
conn.close();
return result;
}
Предполагатьmethod1()
называетсяmethod2()
а такжеmethod2()
названный выше метод. В приведенном выше методе, если я обработаю исключение, я должен вернуть значение. Давайте предположим, что я вернулсяfalse
после вылова блока,method2()
неправильно понимает, как неправильный логин или пароль.
Если я не обращаюсь,method2()
не получит никакого значения, и будет выполнен блок catch, и та же проблема возникнет вmethod1()
.
Теперь вы можете определить, где я могу эффективно обработать исключение?