在 Java 中,throws 主要用在方法声明上,用来说明:这个方法在执行时“可能会抛出”哪些受检异常(checked exception),调用者必须处理或继续抛出。
throws 的基本作用告诉编译器和其他开发者:
“这个方法自己不处理某种异常,但有可能发生,调用我的人要小心。”
public void readFile() throws IOException {
FileInputStream fis = new FileInputStream("a.txt");
}
上面代码表示:
readFile() 可能抛出 IOExceptionreadFile() 的地方必须:
try-catch 捕获throws 抛给上层throws 的主要用途Java 规定:
IOException、SQLException 等 必须处理try-catchthrowspublic void test() throws IOException {
// 不处理,交给调用者
}
常见于:
public void dao() throws SQLException {
// 数据库操作
}
public void service() throws SQLException {
dao();
}
public static void main(String[] args) {
try {
new Demo().service();
} catch (SQLException e) {
e.printStackTrace();
}
}
throws 是方法签名的一部分:
throws vs throw| 对比 | throws | throw |
|---|---|---|
| 位置 | 方法声明处 | 方法内部 |
| 作用 | 声明可能抛出的异常 | 真正抛出异常 |
| 数量 | 可多个 | 一般一个 |
public void test() throws IOException {
throw new IOException("出错啦");
}
throws 会处理异常不会!
throws 只是“甩锅”,不处理。
throws不需要:
public void test() { // 不用 throws
throw new NullPointerException();
}
RuntimeException 及其子类不需要声明。
Java 中的
throws用来“声明异常”,把异常处理的责任交给调用者,主要用于受检异常和分层设计。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。