Ответ
Для сигнализации о недопустимом аргументе используется IllegalArgumentException.
Назначение: Это unchecked-исключение (RuntimeException), которое следует выбрасывать, когда метод получает аргумент, значение которого выходит за допустимые пределы или противоречит логике метода.
Типичные сценарии использования:
- Передача
null, когда метод этого не допускает. - Передача отрицательного числа, где ожидается положительное.
- Передача индекса за пределами допустимого диапазона (хотя для коллекций чаще используется
IndexOutOfBoundsException, который является подклассомIllegalArgumentException).
Пример реализации с проверкой:
public void setAge(int age) {
if (age < 0 || age > 150) {
throw new IllegalArgumentException("Возраст должен быть в диапазоне от 0 до 150. Получено: " + age);
}
this.age = age;
}
Почему это важно?
- Раннее обнаружение ошибок: Проблема выявляется сразу при вызове метода, а не позже в процессе работы.
- Ясность контракта: Четко документирует, какие значения аргументов являются допустимыми.
- Best Practice: Следует всегда выполнять валидацию входящих параметров в публичных методах API.