温馨提示×

温馨提示×

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

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

java Throws 抛出怎么处

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

在 Java 里,throws 和 throw 经常被混淆,我分开说一下,并给出“怎么处理”的常见做法。


一、throw:手动抛出异常(真正“抛出”)

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

如何处理 throw 抛出的异常?

必须在调用处捕获或继续抛出

try {
    checkAge(15);
} catch (IllegalArgumentException e) {
    System.out.println("出错:" + e.getMessage());
}

二、throws:声明方法可能抛出的异常(不处理,只声明)

public void readFile() throws IOException {
    FileInputStream fis = new FileInputStream("a.txt");
}

怎么“处”(处理 throws)?

✅ 方式 1:调用处用 try-catch 处理(推荐)

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

✅ 方式 2:继续 throws(交给上层处理)

public void test() throws IOException {
    readFile();
}

⚠️ 最终必须有人 catch,否则程序会崩溃。


三、throws 的两种异常类型

1️⃣ 受检异常(Checked)

如 IOException、SQLException

✅ 必须 throws 或 try-catch

2️⃣ 非受检异常(Unchecked)

如 RuntimeException、NullPointerException

❌ 不强制 throws,但也可以写


四、常见最佳实践

✅ 该处理就处理(业务逻辑错误)
✅ 处理不了再 throws
✅ 不要吞异常(空 catch)
✅ 自定义异常更清晰

throw new BusinessException("用户不存在");

五、一句话总结

throw 是“抛”
throws 是“说我会抛”
try-catch 才是“处理”

如果你有具体代码或场景(比如 Spring、接口、线程),我可以帮你针对性改。

向AI问一下细节

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

AI
助
手