使用try-catch捕获IllegalArgumentException可提升程序健壮性,如Integer.parseInt("abc")抛出NumberFormatException(其子类)时能被catch块处理;业务中可主动抛出该异常并捕获,如setAge(-5)时提示“年龄必须在0到150之间”;也可合并捕获多个异常,用|分隔类型,统一处理参数校验问题。

在Java中捕获 IllegalArgumentException 的方法与其他异常一样,使用 try-catch 语句块即可。这个异常通常表示传入方法的参数不合法或不符合要求,属于运行时异常(RuntimeException),虽然不是强制捕获的,但在某些场景下提前处理能提升程序健壮性。
将可能抛出该异常的代码放在 try 块中,并用 catch 捕获 IllegalArgumentException:
try {
    Integer.parseInt("abc");
} catch (IllegalArgumentException e) {
    System.out.println("参数非法:" + e.getMessage());
}
上面的例子中,Integer.parseInt() 实际上抛出的是 NumberFormatException,它是 IllegalArgumentException 的子类,因此也能被成功捕获。
在业务逻辑中,可以手动检查参数并抛出异常,再进行捕获处理:
立即学习“Java免费学习笔记(深入)”;
public void setAge(int age) {
    if (age < 0 || age > 150) {
        throw new IllegalArgumentException("年龄必须在 0 到 150 之间");
    }
    // 正常处理
}
// 调用时捕获
try {
    setAge(-5);
} catch (IllegalArgumentException e) {
    System.out.println("错误:" + e.getMessage());
}
如果一段代码可能抛出多种异常,可以分别处理,也可以合并处理:
try {
    someMethod(null);
} catch (IllegalArgumentException | NullPointerException e) {
    System.err.println("参数相关异常:" + e.getMessage());
}
这样可以统一处理与参数校验相关的异常类型。
基本上就这些。只要把可能出问题的代码放进 try 块,明确 catch IllegalArgumentException,就能有效应对参数不合法的情况。以上就是在Java中如何捕获IllegalArgumentException的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号