Java报错”IllegalArgumentException”的原因以及解决办法

  • Post category:Java

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,如果满足条件则抛出异常,否则计算圆形的面积并返回。