在Java中,运行时异常无需声明即可通过throw抛出。1. 常见类型包括IllegalArgumentException、NullPointerException等,用于处理程序逻辑错误;2. 示例中setAge方法在参数非法时抛出IllegalArgumentException;3. 可自定义InvalidUserException继承RuntimeException以满足业务需求;4. 使用时应提供清晰消息并避免滥用,仅用于不可恢复的错误场景。
在Java中,抛出运行时异常(RuntimeException)不需要在方法签名中声明,可以直接通过 throw 关键字实现。运行时异常继承自 RuntimeException 类,属于非检查异常,程序可以不强制捕获或声明。
1. 常见的运行时异常类型
Java 提供了许多内置的运行时异常,例如:- IllegalArgumentException:传递非法参数时使用
- NullPointerException:访问空对象成员时抛出
- IndexOutOfBoundsException:索引越界时使用
- IllegalStateException:对象状态不合法时抛出
你可以直接抛出这些异常,也可以根据需要创建自定义运行时异常。
2. 抛出内置运行时异常
示例:验证方法参数是否合法
public void setAge(int age) {
if (age < 0 || age > 150) {
throw new IllegalArgumentException("年龄必须在0到150之间");
}
// 设置年龄
}
当传入非法值时,立即抛出异常并终止当前操作,提示调用方问题所在。
3. 自定义运行时异常
如果内置异常无法满足业务需求,可以自定义异常类:
public class InvalidUserException extends RuntimeException {
public InvalidUserExcepti
on(String message) {
super(message);
}
public InvalidUserException(String message, Throwable cause) {
super(message, cause);
}
}
然后在代码中使用:
if (user.isBlocked()) {
throw new InvalidUserException("用户已被封禁,无法执行操作");
}
4. 注意事项
虽然运行时异常使用方便,但应合理使用:- 用于表示程序逻辑错误或不可恢复的状态
- 提供清晰的错误消息,便于调试
- 避免滥用,不要用运行时异常处理可预期的正常流程分支
基本上就这些。抛出运行时异常的关键是选择合适的异常类型,并附上有意义的提示信息。









