От чего наследуются Exception в Java

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

Ответ

Все исключения в Java наследуются от класса Throwable. Основные ветви иерархии:

  1. Error – фатальные ошибки (например, OutOfMemoryError), которые обычно не перехватываются
  2. Exception – проверяемые исключения (checked exceptions)
    • RuntimeException – непроверяемые исключения (unchecked exceptions)

Пример:

// Пользовательское исключение
class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

Ключевые особенности:

  • Проверяемые исключения (Exception) требуют обработки через try-catch или объявления в сигнатуре метода (throws)
  • Непроверяемые (RuntimeException и его наследники) можно не обрабатывать
  • Error и его наследники обычно указывают на серьезные проблемы JVM