Ответ
Проверяемое исключение (checked exception) — это исключение, которое компилятор Java обязывает либо обработать в блоке try-catch, либо объявить в сигнатуре метода с помощью throws. Все такие исключения являются подклассами java.lang.Exception, но не java.lang.RuntimeException.
Почему они существуют: Для обеспечения надежности кода, заставляя разработчика явно предусмотреть обработку ошибок, которые могут возникнуть во время выполнения (например, отсутствие файла, проблемы с сетью).
Пример работы:
// Способ 1: Объявление в throws
public String readFirstLine(String filePath) throws IOException {
return Files.readAllLines(Paths.get(filePath)).get(0); // Может выбросить IOException
}
// Способ 2: Обработка в try-catch
public String readFirstLineSafe(String filePath) {
try {
return Files.readAllLines(Paths.get(filePath)).get(0);
} catch (IOException e) { // Обработка проверяемого исключения
System.err.println("Ошибка чтения файла: " + e.getMessage());
return "";
}
}
Типичные примеры: IOException, SQLException, ClassNotFoundException. В отличие от них, непроверяемые исключения (RuntimeException и его наследники, например, NullPointerException) не требуют обязательной декларации.