Ответ
Checked исключения в Java наследуются от класса Exception, но НЕ от RuntimeException.
Ключевые отличия:
- Checked исключения (
Exception) – проверяются компилятором. Метод должен либо обработать их вtry-catch, либо объявить в сигнатуре сthrows. - Unchecked исключения (
RuntimeException) – не проверяются компилятором.
Пример checked исключения:
import java.io.*;
public void readFile() throws IOException { // Обязательное объявление
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
// ... чтение файла
}
// Или обработка:
public void readFileSafe() {
try {
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
} catch (IOException e) { // Обработка checked исключения
System.err.println("Файл не найден: " + e.getMessage());
}
}
Иерархия: Throwable ← Exception ← (Checked исключения, например, IOException) и RuntimeException ← (Unchecked исключения).