Расскажите про иерархию Throwable, Exception, Error, разницу Checked и Unchecked исключений

В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked).

Короткий ответ

Что ответить на собеседовании

В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked).

Подробный разбор

Ответ с пояснениями

В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked).

  • Проверяемые исключения — это исключения, которые компилятор требует обработать явно. Они наследуются от класса Exception, но не от RuntimeException. Пример: IOException, SQLException. При вызове метода, который может выбросить проверяемое исключение, нужно либо обработать его в блоке try-catch, либо объявить в throws.
  • Непроверяемые исключения — наследуются от RuntimeException. Компилятор не требует их обязательной обработки. Пример: NullPointerException, IllegalArgumentException. Обычно они возникают из-за ошибок программирования и не должны обрабатываться явно.

Пример:

try {
    FileInputStream fis = new FileInputStream("file.txt"); // IOException - проверяемое
} catch (IOException e) {
    e.printStackTrace();
}

int a = 5 / 0; // ArithmeticException - непроверяемое

Таким образом, проверяемые исключения требуют явной обработки, а непроверяемые — нет.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее