Ответ
Да, Exception является базовым классом для проверяемых (checked) исключений.
- Все его подклассы, кроме
RuntimeExceptionи его наследников, являются проверяемыми. - Компилятор требует либо обработать их в блоке
try-catch, либо объявить в сигнатуре метода с помощьюthrows.
Пример проверяемого исключения:
import java.io.*;
public void readFile() throws IOException { // Обязательное объявление throws
FileReader file = new FileReader("test.txt"); // Может выбросить IOException
}
Почему это важно:
- Контроль ошибок: Обязывает разработчика явно предусмотреть обработку известных ошибок (например,
IOException,SQLException). - Надежность: Повышает надежность кода, так как критические ошибки не могут быть проигнорированы случайно.
Иерархия:
Throwable
├── Error (непроверяемые, например, OutOfMemoryError)
└── Exception
├── RuntimeException (непроверяемые, например, NullPointerException)
└── Проверяемые исключения (например, IOException, ClassNotFoundException).