在 Java 里,throws 是一个声明异常的关键字,意思是:
“这个方法可能会抛出某种异常,我自己不处理,交给调用我的人去处理。”
throws 的基本含义方法在定义时,用 throws 告诉编译器:
“我这个方法有可能出现 XX 异常,我不 catch,谁调用谁负责。”
public void readFile() throws IOException {
// 可能抛出 IOException
}
意思是:
readFile() 方法可能抛出 IOExceptionreadFile() 的地方必须处理(catch 或继续 throws)throws 和 throw 的区别(很容易混)| 关键字 | 作用 | 出现位置 |
|---|---|---|
throws |
声明可能抛出的异常 | 方法签名 |
throw |
真正抛出一个异常对象 | 方法内部 |
public void test(int age) {
if (age < 0) {
throw new IllegalArgumentException("年龄不能为负数");
}
}
throws 的两种情况public void save() throws SQLException {
}
不处理就会编译报错。
public void div(int a, int b) throws ArithmeticException {
}
ArithmeticException 是 RuntimeException,不是必须写 throws
public void a() throws Exception {
b();
}
public void b() throws Exception {
c();
}
public void c() throws Exception {
throw new Exception("出错啦");
}
调用关系:
a -> b -> c
异常从 c 一路往上抛,直到有人 catch。
throws就是“甩锅声明”:
这个方法可能出事,我不背锅,谁调用谁处理。
如果你愿意,我也可以用生活比喻或面试角度再给你讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。