Является ли класс Exception в Java проверяемым исключением?

«Является ли класс Exception в Java проверяемым исключением?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, 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).