Sobes.tech
Back to questions
Middle+
3

Расскажите иерархию исключений в Java

Companies where asked
Мираполис

Answer from AI

sobes.tech AI

Иерархия исключений в Java начинается с базового класса java.lang.Throwable, который имеет два основных подкласса:

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

  • Exception — исключения, которые могут быть обработаны программой.

    • Checked exceptions (проверяемые) — исключения, которые компилятор требует либо обработать, либо объявить в throws. Например, IOException, SQLException. Они наследуются от Exception, но не от RuntimeException.

    • Unchecked exceptions (непроверяемые) — наследуются от RuntimeException. Компилятор не требует их обязательной обработки. Примеры: NullPointerException, IllegalArgumentException.

Таким образом, основная иерархия выглядит так:

java.lang.Object
  └─ java.lang.Throwable
       ├─ java.lang.Error
       └─ java.lang.Exception
            ├─ java.lang.RuntimeException
            └─ другие проверяемые исключения

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