throw用于方法内抛出异常实例,throws用于声明方法可能抛出的异常类型。①throw后接异常对象,如new IllegalArgumentException();②throws后接异常类名,写在方法签名末尾;③throw主动抛出异常,中断执行流程;④throws提醒调用者处理检查型异常;⑤二者协同实现Java异常处理机制。
throw 和 throws 是java异常处理机制中的两个关键字,虽然名字相似,但作用和使用场景完全不同。
1. throw:用于抛出异常实例
throw 关键字用在方法内部,用来主动抛出一个异常对象。通常用于检测到错误条件时,手动中断程序执行流程。
常见使用场景:
- 当某个条件不满足业务逻辑时,比如参数非法
- 需要提前终止方法执行并通知调用者发生了问题
语法格式:
throw new 异常类型("异常信息");
立即学习“Java免费学习笔记(深入)”;
示例:
if (age < 0) {
throw new IllegalArgumentException("年龄不能为负数");
}
2. throws:声明可能抛出的异常类型
throws 关键字写在方法签名的末尾,用于声明该方法可能会抛出某种或某些异常。它不处理异常,而是提醒调用者:这个方法有可能出错,你需要考虑如何应对。
主要用途:
- 方法中调用了其他可能抛出检查型异常(checked exception)的方法
- 方法内使用了 throw 抛出了检查型异常
- 让调用者决定是否捕获或继续向上抛出
语法格式:
返回类型 方法名(参数) throws 异常类型1, 异常类型2 { ... }
示例:
public void readFile() throws IOException {
FileInputstream fis = new FileInputStream("file.txt");
}
关键区别总结
throw 是实际抛出异常的动作,而 throws 是对可能发生的异常进行声明。
- throw 后面是异常对象(如 new Exception()),throws 后面是异常类名(如 Exception)
- throw 用在方法内部,throws 写在方法声明处
- throw 一般用于运行时异常或主动抛出,throws 主要用于检查型异常的传递
基本上就这些。理解清楚这两个关键字的位置和职责,能更好设计健壮的异常处理逻辑。
评论(已关闭)
评论已关闭