在 Java 中,throw 和 throws 都和**异常(Exception)**有关,但它们的作用和使用位置完全不同。
作用:
在方法内部主动抛出一个异常对象。
特点:
示例:
public void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("年龄必须大于18岁");
}
}
✅ 用于在代码中“手动制造”异常。
作用:
在方法声明处告诉调用者:这个方法可能会抛出某些异常。
特点:
示例:
public void readFile() throws IOException {
// 可能抛出 IOException
}
调用该方法时,必须:
| 对比点 | throw | throws |
|---|---|---|
| 位置 | 方法内部 | 方法声明处 |
| 后面跟什么 | 异常对象 | 异常类型 |
| 作用 | 真正抛出异常 | 声明可能抛异常 |
| 数量 | 一次一个 | 可多个 |
| 是否中断方法 | 是 | 否 |
public void test() throws Exception {
if (true) {
throw new Exception("出错了");
}
}
throw:真的把异常扔出去throws:告诉别人“我可能会扔”如果你愿意,我也可以从面试角度或RuntimeException vs 受检异常再帮你总结一份。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。