Когда следует создавать исключение IllegalArgumentException?

Я обеспокоен тем, что это исключение времени выполнения, поэтому его следует использовать с осторожностью.

Стандартный вариант использования:

void setPercentage(int pct) {
    if( pct < 0 || pct > 100) {
         throw new IllegalArgumentException("bad percent");
     }
}

Но похоже, что это вынудит следующий дизайн:

public void computeScore() throws MyPackageException {
      try {
          setPercentage(userInputPercent);
      }
      catch(IllegalArgumentException exc){
           throw new MyPackageException(exc);
      }
 }

Чтобы вернуть его в статус проверенного исключения.

Хорошо, но давайпойдем с этим. Если вы дадите неправильный ввод, вы получите ошибку во время выполнения. Итак, во-первых, этоНа самом деле это довольно сложная политика для единообразной реализации, потому что вам может потребоваться сделать совершенно противоположное преобразование:

public void scanEmail(String emailStr, InputStream mime) {
    try {
        EmailAddress parsedAddress = EmailUtil.parse(emailStr);
    }
    catch(ParseException exc){
        throw new IllegalArgumentException("bad email", exc);
    }
}

И хуже - при проверке0

Ответы на вопрос(6)

Ваш ответ на вопрос