温馨提示×

温馨提示×

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

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

java Throws 抛出怎样做

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

在 Java 中,throws 和 throw 是两个不同的概念,很多人会混淆。下面我分别说明,并给出示例。


一、throw:在方法内部“抛出异常对象”

作用:手动抛出一个异常(可以是系统异常,也可以是自定义异常)。

语法

throw new 异常类型(参数);

示例

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

二、throws:在方法声明上“声明可能抛出的异常”

作用:告诉调用者,这个方法可能会抛出某种异常,调用者必须处理(捕获或继续抛出)。

语法

返回值类型 方法名(参数) throws 异常类型1, 异常类型2 {
}

示例

public void readFile(String path) throws IOException {
    FileInputStream fis = new FileInputStream(path);
}

调用该方法时:

public static void main(String[] args) {
    try {
        readFile("test.txt");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

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

对比项 throw throws
位置 方法内部 方法声明处
作用 真正抛出异常对象 声明可能抛出的异常
数量 只能抛一个 可声明多个

四、自定义异常 + throw / throws 示例

// 自定义异常
class MyException extends Exception {
    public MyException(String msg) {
        super(msg);
    }
}

public class Test {
    public static void test(int num) throws MyException {
        if (num < 0) {
            throw new MyException("数字不能为负数");
        }
    }

    public static void main(String[] args) {
        try {
            test(-1);
        } catch (MyException e) {
            System.out.println(e.getMessage());
        }
    }
}

五、使用建议

  • RuntimeException 及其子类:可不写 throws(如 NullPointerException)
  • Checked Exception(如 IOException):必须处理或 throws

如果你是想问 “如何在方法中抛出异常并让上层处理”,或者 “Spring / 项目中怎么用”,可以继续问我。

向AI问一下细节

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

AI
助
手