下面的if语句应返回字符串“ IllegalArgumentException”,但事实证明它返回的是空字符串。
我试图设置一个String变量输出以将所需的String存储在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)
返回
exception:IllegalArgumentException
但是错误消息是一个空字符串。
答案 0 :(得分:1)
以下语句是多余的:
返回输出=“ IllegalArgumentException”;
相反,您应该只返回String
或引发异常。
返回“ IllegalArgumentException”;
OR
抛出新的IllegalArgumentException(“ your message”);
对于为什么它返回none
是不可理解的。因为我已经运行了代码here,并且可以通过将参数设置为-1
答案 1 :(得分:1)
"IllegalArgumentException"
,而应使用throw new IllegalArgumentException("n should be non-negative")
。请注意,异常消息应始终是有意义且非空的。您可以设置适当的IDEA检查,突出显示创建没有消息的异常。else
,这将为您节省一个缩进级别。