Sobes.tech
Назад к вопросам
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;
}