Как избежать дублирования кода при создании исключения
Есть класс предмет (Subject), у которого есть поле оценка (assessment). Оценка должна быть от 1 до 10 (оба числа включительно), в ином случае должно выбрасываться исключение (AssessmentException). В коде ниже исключение выбрасывается в конструкторе, так что можно присвоить оценке некорректное значение с помощью сеттера.
Вопрос следующий: Можно ли разрешить ситуацию, не дублируя if с выбрасыванием исключения в сеттере?
public class Subject {
private int assessment;
public Subject(int assessment) throws AssessmentException {
this.assessment = assessment;
if (assessment <= 0 || assessment > 10) throw new AssessmentException();
}
public void setAssessment(int assessment) {
this.assessment = assessment;
}
}
Ответы (1 шт):
Автор решения: Имя Фамилия
→ Ссылка
public class Subject {
private int assessment;
public Subject(int assessment) throws AssessmentException {
setAssessment(assessment);
}
public void setAssessment(int assessment) throws AssessmentException {
if (assessment < 1 || assessment > 10)
throw new AssessmentException();
this.assessment = assessment;
}
}