在 Java 中,throws 和 throw 经常一起说,但用法不同。下面分开讲清楚。
throws(方法声明处)声明一个方法可能会抛出什么异常,告诉调用者需要处理。
修饰符 返回值 方法名(参数) throws 异常类型1, 异常类型2 {
// 方法体
}
public void readFile() throws IOException {
FileReader reader = new FileReader("test.txt");
}
调用时必须处理:
public static void main(String[] args) {
try {
readFile();
} catch (IOException e) {
e.printStackTrace();
}
}
或者继续抛出:
public static void main(String[] args) throws IOException {
readFile();
}
throw(方法内部)主动抛出一个异常对象
throw new 异常类型("错误信息");
public void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("年龄必须大于18");
}
}
如果是检查异常:
public void test() throws Exception {
throw new Exception("出错了");
}
throw 和 throws 的区别| 对比项 | throw | throws |
|---|---|---|
| 位置 | 方法内部 | 方法声明处 |
| 作用 | 抛出异常对象 | 声明可能抛出的异常 |
| 数量 | 一次一个 | 可多个 |
| 类型 | 异常实例 | 异常类 |
IOException、SQLException(必须处理或 throws)NullPointerException、IllegalArgumentException(可不处理)throw = 真正扔异常
throws = 告诉别人“我可能会扔”
如果你愿意,我可以给你一个完整可运行的小例子或结合面试常问点来讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。