温馨提示×

温馨提示×

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

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

java Throws 抛出怎么抛

发布时间:2026-10-07 02:06:18 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,throws 和 throw 是两个相关但不同的概念,很多人会混淆。我分别给你讲清楚,并配上示例。


一、throw:手动“抛出一个异常对象”

throw 用于在方法内部主动抛出一个异常。

语法

throw new 异常类型("异常信息");

示例

public void checkAge(int age) {
    if (age < 18) {
        throw new IllegalArgumentException("年龄必须大于等于18岁");
    }
    System.out.println("年龄合法");
}

✅ 特点:

  • 抛的是异常对象
  • 一般用于业务逻辑校验
  • 抛出后,方法立即停止执行

二、throws:声明“方法可能抛出什么异常”

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();
}

✅ 特点:

  • 不真正抛异常,只是“声明”
  • 用在编译时异常(checked exception)
  • 调用者必须 try-catch 或继续 throws

三、throw 和 throws 的区别(重点)

对比点 throw throws
位置 方法内部 方法声明处
作用 真正抛出异常 声明可能抛出的异常
后面内容 异常对象 异常类名
数量 一次一个 可多个

四、常见组合用法

public void test() throws Exception {
    if (true) {
        throw new Exception("出错了");
    }
}

五、RuntimeException(运行时异常)

public void test() {
    throw new RuntimeException("运行时异常");
}

✅ 不需要 throws,编译器不强制处理


如果你愿意,我也可以:

  • 用 真实业务例子(如登录、文件上传)
  • 讲 自定义异常
  • 对比 try-catch 和 throws 该怎么选

你可以直接说“想看哪种”。

向AI问一下细节

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

AI
助
手