java - 为什么我的代码忽略异常?

标签 java arrays object if-statement illegalargumentexception

我的代码应该使在 discountCode String 中输入除字母或“$”以外的任何内容都会导致抛出异常,但这并没有发生。用户可以键入任何内容,但仍然收不到异常消息。 非常感谢任何帮助,谢谢。

private String normalizeDiscountCode(String discountCode) {
  String upperDiscountCode = discountCode.toUpperCase();

    for (char i : upperDiscountCode.toCharArray()) {
      if (Character.isLetter(i) || i == '$') {
        return upperDiscountCode;
      } else {
        throw new IllegalArgumentException("Invalid discount code");
        }
    }
    return upperDiscountCode;
  }

  public void applyDiscountCode(String discountCode) {
    this.discountCode = normalizeDiscountCode(discountCode);
  }
}

最佳答案

Java 8 版本:

private String normalizeDiscountCode(String discountCode) {
    String upperDiscountCode = discountCode.toUpperCase();
    if (upperDiscountCode.chars()
            .allMatch(c -> Character.isLetter(c) || c == '$')) {
        return upperDiscountCode;
    }
    throw new IllegalArgumentException("Invalid discount code");
}

关于java - 为什么我的代码忽略异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545735/

相关文章:

c++ - 计算间隔内值数量的更有效方法?

java - 在 Java 中为 Array 中的元素分配引用时到底发生了什么?

C++/SDL 'void*' 不是点对对象类型

javascript - 从原型(prototype)函数更新对象值

python - 这段 Python 代码有什么错误?

java - 错误 : Connecting MySQL database in Android app using PHP

java - 如何解析获取请求响应以获取所有键和值对?

java - 禁用 Eclipse Java Neon 中的错误提示/警告

java - 在 jooq 中访问 sql-array 项目

javascript - 将变量追加到数组而不更改它