Назад к вопросам
Senior
4
В чём разница между checked и unchecked исключениями? Когда использовать RuntimeException?
Компании, где спрашивали
kode.ru
Ответ от нейросети
sobes.tech AI
В Java исключения делятся на checked (проверяемые) и unchecked (непроверяемые).
Checked исключения — это исключения, которые проверяются компилятором. Метод, который может их выбросить, обязан объявить это через throws, и вызывающий код должен обработать их либо через try-catch, либо пробросить дальше. Пример: IOException, SQLException.
Unchecked исключения — это наследники RuntimeException и Error. Компилятор не требует их обязательной обработки или объявления. Обычно это ошибки программирования, например, NullPointerException, IllegalArgumentException.
Когда использовать RuntimeException?
- Если ошибка возникает из-за неправильного использования API (например, передан неверный аргумент).
- Если ошибка не подлежит восстановлению и не должна заставлять пользователя обрабатывать её явно.
- Для ошибок, которые являются результатом логических ошибок в коде.
Пример:
public void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Возраст не может быть отрицательным");
}
this.age = age;
}