Ответ
Нет, нельзя просто проигнорировать. Код, вызывающий метод, объявленный с throws для checked-исключений, обязан отреагировать одним из двух способов. Игнорирование приведет к ошибке компиляции.
Checked исключения (например, IOException, SQLException):
-
Обработать (catch) исключение на месте:
void caller() { try { methodThatThrows(); // Объявлен как throws IOException } catch (IOException e) { // Обработка исключения System.err.println("Ошибка ввода-вывода: " + e.getMessage()); } } -
Объявить в своей сигнатуре (пробросить дальше):
void caller() throws IOException { // Добавляем throws methodThatThrows(); // Теперь компилятор доволен }
Unchecked исключения (RuntimeException и его наследники, например, NullPointerException, IllegalArgumentException):
- Для них объявление
throwsв сигнатуре необязательно. - Их можно игнорировать (не обрабатывать и не объявлять), но это плохая практика, так как приведет к аварийному завершению программы при возникновении.
Правило компилятора: Вы обязаны либо обработать (catch), либо объявить (throws) все checked-исключения, которые могут быть выброшены вызываемым методом.