在 Java 中,throws 和 throw 是两个相关但不同的概念,很多人会混淆。我分别给你讲清楚,并配上示例。
throw 用于在方法内部主动抛出一个异常。
throw new 异常类型("异常信息");
public void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("年龄必须大于等于18岁");
}
System.out.println("年龄合法");
}
✅ 特点:
throws 用在方法声明处,表示这个方法可能会抛出的异常,交给调用者处理。
修饰符 返回值类型 方法名() throws 异常类型1, 异常类型2 {
}
public void readFile() throws IOException {
FileInputStream fis = new FileInputStream("test.txt");
}
调用时:
public static void main(String[] args) throws IOException {
new Demo().readFile();
}
✅ 特点:
try-catch 或继续 throws| 对比点 | throw | throws |
|---|---|---|
| 位置 | 方法内部 | 方法声明处 |
| 作用 | 真正抛出异常 | 声明可能抛出的异常 |
| 后面内容 | 异常对象 | 异常类名 |
| 数量 | 一次一个 | 可多个 |
public void test() throws Exception {
if (true) {
throw new Exception("出错了");
}
}
public void test() {
throw new RuntimeException("运行时异常");
}
✅ 不需要 throws,编译器不强制处理
如果你愿意,我也可以:
你可以直接说“想看哪种”。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。