Назад к вопросам
СБЕР дейвайсы
Junior — Middle
115
Чем отличаются проверяемые и непроверяемые исключения в языках программирования?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Java исключения делятся на проверяемые (checked) и непроверяемые (unchecked):
-
Проверяемые исключения (checked exceptions):
- Наследуются от класса
Exception, но не отRuntimeException. - Компилятор требует, чтобы такие исключения либо обрабатывались в блоке
try-catch, либо объявлялись в сигнатуре метода черезthrows. - Используются для ситуаций, которые можно предвидеть и от которых можно восстановиться, например,
IOException.
- Наследуются от класса
-
Непроверяемые исключения (unchecked exceptions):
- Наследуются от
RuntimeException. - Компилятор не требует их обязательной обработки или объявления.
- Обычно сигнализируют о программных ошибках, таких как
NullPointerExceptionилиIllegalArgumentException.
- Наследуются от
Пример:
public void readFile(String path) throws IOException { // checked exception
// код чтения файла
}
public void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Возраст не может быть отрицательным"); // unchecked
}
}
Таким образом, проверяемые исключения заставляют программиста явно обрабатывать потенциальные ошибки, а непроверяемые — сигнализируют о логических ошибках, которые обычно не обрабатываются явно.