Java中的”IllegalArgumentException”表示传递给方法的参数不合法,即参数的值不遵循方法的规则或者不符合预期。通常发生在方法参数校验时,比如参数为空、参数字符串长度超过限制、参数数值不在合法范围内等。以下是这种异常的两个示例及对应的解决办法。
示例一:方法参数为空
public void updateUserInfo(String name, int age) {
if(name==null || name.trim().equals("")){
throw new IllegalArgumentException("用户名不能为空");
}
//其他业务逻辑代码
}
在上面的代码中,如果方法参数name为空,那么就会抛出”IllegalArgumentException”异常,并且异常信息为”用户名不能为空”。解决办法是在方法的开头增加参数校验逻辑,判断参数name是否为空或空字符串,如果满足条件则抛出异常,否则执行正常业务逻辑代码。
示例二:方法参数数值不在合法范围内
/**
* 计算圆形的面积,抛出异常的半径不能为负数
* @param radius 半径
* @return 圆形的面积
* @throws IllegalArgumentException
*/
public double calculateCircleArea(double radius) throws IllegalArgumentException {
if(radius < 0){
throw new IllegalArgumentException("半径不能是负数");
}
return Math.PI * radius * radius;
}
在上面的代码中,如果方法参数radius为负数,那么就会抛出”IllegalArgumentException”异常,并且异常信息为”半径不能是负数”。解决办法是在方法的开头增加参数校验逻辑,判断参数radius是否小于0,如果满足条件则抛出异常,否则计算圆形的面积并返回。