В принципе, то, что вы делаете здесь, является примером дизайна по контракту : вы определяете предварительное условие для вашего метода.
A) Неправильное условие
Ваше состояние неверное.Вы хотите создать исключение в совершенно противоположном случае:
if(age < 0 || age >= 120) {
// Throw exception
}
(На это также указывал @Nikolas в предыдущем сообщении)
B) Создание проекта по контрактуЯвный
Я бы сделал это явно, предоставив метод Assertion:
private void setAge(int age) {
assertCorrectAge(age);
this.age = age;
}
private void assertCorrectAge(int age) {
if(age < 0 || age >= 120) {
throw new IllegalArgumentException(" ... ");
}
}
Некоторые люди предложат использовать сборку Java в ключевом слове assert
.Я предлагаю не делать этого, потому что он отключен в большинстве версий JVM (поэтому он не срабатывает).
C) Используйте библиотеку
Имеет много утвержденийметод проверки предварительных условий, складывается из множества шаблонов кода.Об этом может позаботиться библиотека (например, Гуава Google ):
public void setAge(int age) {
Preconditions.checkArgument(age >= 0, "negative age: %s", age);
Preconditions.checkArgument(age < 120, "age too high: %s", age);
this.age = age;
}