Какие знаешь наследники Throwable

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

Ответ

В Java Throwable — базовый класс для всех исключений и ошибок. Его наследники делятся на две основные категории:

  1. Exception — проверяемые исключения (например, IOException, SQLException).
  2. Error — критические ошибки (например, OutOfMemoryError, StackOverflowError).

Exception также делится на:

  • Проверяемые (checked) — требуют обработки (try-catch или throws).
  • Непроверяемые (unchecked) — наследники RuntimeException (NullPointerException, IllegalArgumentException).

Пример:

try {
    throw new IOException("File not found"); // checked
} catch (IOException e) {
    e.printStackTrace();
}

throw new NullPointerException(); // unchecked (RuntimeException)