在 Java 里,throws 和 throw 是两回事,很多人容易混:
作用:告诉调用者,这个方法可能会抛什么异常,自己不处理。
返回值类型 方法名(参数) throws 异常类型1, 异常类型2 {
// 方法体
}
public class Demo {
// 声明可能会抛出 IOException
public static void readFile() throws java.io.IOException {
throw new java.io.IOException("文件读取失败");
}
public static void main(String[] args) throws Exception {
readFile(); // 继续往上抛
}
}
✅ 特点:
作用:在代码里主动抛出一个异常。
throw new 异常类(参数);
public void checkAge(int age) {
if (age < 18) {
throw new IllegalArgumentException("年龄必须大于等于18");
}
}
public void login(String user) throws Exception {
if (user == null) {
throw new Exception("用户名不能为空");
}
}
public void test() {
throw new RuntimeException("运行时异常");
}
✅ 不需要 throws ✅ 调用者也不需要强制处理
| 关键字 | 位置 | 作用 |
|---|---|---|
| throw | 方法内部 | 真正抛出异常 |
| throws | 方法声明 | 声明可能抛出的异常 |
如果你愿意,我可以:
你现在是 初学 Java 还是 准备面试?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。