温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

throw和throws区别

发布时间:2026-09-15 23:53:50 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,throw 和 throws 都和**异常(Exception)**有关,但它们的作用和使用位置完全不同。


一、throw(抛出一个异常对象)

作用:
在方法内部主动抛出一个异常对象。

特点:

  • 是语句
  • 后面跟的是异常对象(new 出来的)
  • 一旦执行,方法会立即中断

示例:

public void checkAge(int age) {
    if (age < 18) {
        throw new IllegalArgumentException("年龄必须大于18岁");
    }
}

✅ 用于在代码中“手动制造”异常。


二、throws(声明可能抛出的异常)

作用:
在方法声明处告诉调用者:这个方法可能会抛出某些异常。

特点:

  • 是方法签名的一部分
  • 后面跟的是异常类型(可以有多个)
  • 本身不抛异常,只是“声明”

示例:

public void readFile() throws IOException {
    // 可能抛出 IOException
}

调用该方法时,必须:

  • 捕获异常(try-catch)
  • 或继续 throws

三、核心区别对比表

对比点 throw throws
位置 方法内部 方法声明处
后面跟什么 异常对象 异常类型
作用 真正抛出异常 声明可能抛异常
数量 一次一个 可多个
是否中断方法 是 否

四、综合示例

public void test() throws Exception {
    if (true) {
        throw new Exception("出错了");
    }
}
  • throw:真的把异常扔出去
  • throws:告诉别人“我可能会扔”

如果你愿意,我也可以从面试角度或RuntimeException vs 受检异常再帮你总结一份。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手