Sobes.tech
Назад к вопросам
Senior
9

Расскажите базовую иерархию исключений в Java. Что такое checked и unchecked исключения?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В Java иерархия исключений начинается с класса Throwable, который имеет два основных подкласса:

  • Error — ошибки, которые обычно не обрабатываются приложением (например, OutOfMemoryError).
  • Exception — исключения, которые могут быть обработаны.

В свою очередь, Exception делится на:

  • Checked exceptions (проверяемые) — исключения, которые компилятор требует либо обработать (try-catch), либо объявить в сигнатуре метода (throws). Примеры: IOException, SQLException.
  • Unchecked exceptions (непроверяемые) — наследники RuntimeException, которые не требуют обязательной обработки. Примеры: NullPointerException, IllegalArgumentException.

Проверяемые исключения используются для ситуаций, которые можно предвидеть и обработать, например, ошибки ввода-вывода. Непроверяемые — для ошибок программирования или непредвиденных ситуаций.

Пример:

public void readFile(String path) throws IOException {
    // checked exception
}

public void processData(Object obj) {
    if (obj == null) {
        throw new NullPointerException(); // unchecked
    }
}