java – How to handle invalid data in the constructor?

Question:

There is the following class:

public class Knowledge {
    int level;
    public Knowledge(int level) {
        if (0 < level && level < 10){
            this.level = level;
        } else {
            // что-то тут было бы правильно сделать ?
        }
    }
}

Knowledge can be rated from 1 to 10. What if a different number is passed to the constructor? How to handle such parameters correctly?

Answer:

  ...
} else {
  throw new IllegalArgumentException("level is out of range [1,9]: " + level);
}
Scroll to Top