首页 > 解决方案 > if 语句应该返回“IllegalArgumentException”,但它返回一个空字符串

问题描述

下面的 if 语句应该返回字符串“IllegalArgumentException”,但结果却是返回一个空字符串。

我试图设置一个字符串变量输出以将预期的字符串存储在 if 语句中。

public static String starString(int n){
  if(n < 0){
    String output = "";
    return output = "IllegalArgumentException";
  } else {
    String stars = "";
    for(int i = 0; i < Math.pow(2, n); i++){
      stars += "*";
    }
    return stars;
  }
}

我期待starString(-1)回来

异常:IllegalArgumentException

但是错误消息是一个空字符串。

标签: java

解决方案


以下语句是多余的:

返回输出 = "IllegalArgumentException";

相反,您应该只返回String或抛出异常。

返回“IllegalArgumentException”;

或者

throw new IllegalArgumentException("你的消息");

至于它为什么要回归none是无法理解的。因为我在这里运行了代码,并且将参数设置为-1


推荐阅读