throw用于手动抛出异常对象,语法为throw new 异常类("信息"); 常用于参数校验、业务逻辑控制及自定义异常,如setAge中检测负数则抛出IllegalArgumentException;抛出的异常可用try-catch捕获处理,避免程序崩溃;自定义异常需继承Exception等类,若为检查型异常,方法须用throws声明。合理使用可提升代码健壮性与错误可读性。

在Java中,throw 关键字用于手动抛出一个异常对象。当你检测到程序中出现错误或不符合预期的情况时,可以使用 throw 主动抛出异常,从而中断正常流程并交由异常处理机制处理。
throw的基本语法
使用 throw 抛出异常的语法非常简单:
throw new 异常类("异常信息");其中,“异常类”通常是继承自 java.lang.Exception 或 java.lang.RuntimeException 的类。
常见使用场景
以下是几个常见的使用 throw 的情况:
立即学习“Java免费学习笔记(深入)”;
- 参数校验失败时抛出异常
- 业务逻辑不满足条件时中断执行
- 封装自定义异常并传递上下文信息
例如,检查方法传入参数是否为负数:
public void setAge(int age) {if (age throw new IllegalArgumentException("年龄不能为负数");
}
// 正常处理逻辑
}
结合try-catch处理throw异常
抛出的异常可以通过 try-catch 块捕获和处理:
try {throw new RuntimeException("测试异常");
} catch (RuntimeException e) {
System.out.println("捕获到异常:" + e.getMessage());
}
这样可以避免程序因未处理的异常而崩溃。
自定义异常中的throw使用
你可以创建自己的异常类,并在需要时抛出:
class InvalidPasswordException extends Exception {public InvalidPasswordException(String message) {
super(message);
}
}
public void checkPassword(String password) throws InvalidPasswordException {
if (password == null || password.length() throw new InvalidPasswordException("密码长度不能少于6位");
}
}
注意:如果抛出的是检查型异常(checked exception),方法必须用 throws 声明。
基本上就这些。合理使用 throw 能让代码更健壮,也能更清晰地表达错误意图。关键是选择合适的异常类型,并提供有意义的错误信息。










