温馨提示×

温馨提示×

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

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

java Throws 抛出啥区别

发布时间:2026-10-27 15:04:57 来源:亿速云 阅读:83 作者:小樊 栏目:编程语言

在 Java 里,throw 和 throws 经常被搞混,但其实差别很明显。下面用通俗的话给你讲清楚。


一、throw:真正“抛出异常”

throw 是动作,在代码里真正把异常丢出去。

特点

  • 用在方法内部
  • 后面跟的是异常对象
  • 一旦执行,程序流程立刻中断,去找异常处理者

示例

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

✅ 这里 throw 真的“扔”了一个异常出去


二、throws:声明“我可能会抛异常”

throws 是声明,告诉调用者:

“我这个方法可能会抛这些异常,你自己处理”

特点

  • 用在方法签名上
  • 后面跟的是异常类型
  • 自己不处理,交给调用者

示例

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

调用者必须:

try {
    readFile();
} catch (IOException e) {
    e.printStackTrace();
}

或继续 throws


三、核心区别对比表

对比项 throw throws
位置 方法内部 方法声明处
作用 真正抛出异常 声明可能抛出的异常
跟的内容 异常对象 异常类
数量 一次一个 可多个
是否处理异常 不处理 不处理

四、一个方法里两者一起用

public void test() throws Exception {
    if (true) {
        throw new Exception("出错啦");
    }
}
  • throw:真正抛
  • throws:告诉别人“我会抛”

五、记忆口诀 ✅

throw 是“扔”
throws 是“说我会扔”

如果你愿意,我也可以帮你画流程图,或者用面试角度讲这道题。

向AI问一下细节

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

AI
助
手