Расскажи про exceptions — иерархию, checked и unchecked с примерами

В Java исключения наследуются от Throwable. Checked нужно обработать или объявить в throws; RuntimeException и Error с их потомками относятся к unchecked.

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

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

В Java исключения наследуются от Throwable. Checked нужно обработать или объявить в throws; RuntimeException и Error с их потомками относятся к unchecked.

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

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

В Java исключения наследуются от Throwable. Checked нужно обработать или объявить в throws; RuntimeException и Error с их потомками относятся к unchecked.

Exception включает, например, checked-исключение IOException и unchecked-ветку RuntimeException. Примеры unchecked — NullPointerException и IllegalArgumentException. Error обычно обозначает серьёзные проблемы среды, например OutOfMemoryError; перехватывать всё подряд через Throwable обычно неправильно. В catch более конкретный тип размещают раньше общего. Если восстановление невозможно, сохраняют причину исключения и передают ошибку на слой, который умеет с ней работать; пустой catch скрывает неисправность.

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

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

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

Подробнее