在 Java 中,throws 和 throw 是两个相关但不同的概念,先简单区分一下:
throw:在方法内部真正抛出一个异常对象throws:在方法声明处说明该方法可能抛出的异常(交给调用者处理)你问的“Throws 抛出如何捕获”,通常是指:
一个方法用
throws声明了异常,调用这个方法时该如何捕获?
如果一个方法声明了 throws 异常,调用它时必须:
try-catch 捕获throws 往上抛import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class Demo {
public static void main(String[] args) {
try {
readFile(); // 调用 throws 方法
} catch (FileNotFoundException e) {
System.out.println("文件未找到:" + e.getMessage());
}
}
// 方法声明 throws
public static void readFile() throws FileNotFoundException {
FileInputStream fis = new FileInputStream("test.txt");
}
}
✅ readFile() 抛出的异常,在 main 中被捕获
如果你不想在当前方法处理,可以继续往上抛:
public static void main(String[] args) throws FileNotFoundException {
readFile();
}
⚠️ 注意:
throwstry {
method();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
Java 7+ 也可以写:
catch (IOException | ParseException e) {
e.printStackTrace();
}
try {
readFile();
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
System.out.println("无论是否异常都会执行");
}
public void checkAge(int age) throws Exception {
if (age < 18) {
throw new Exception("年龄太小");
}
}
调用时:
try {
checkAge(15);
} catch (Exception e) {
System.out.println(e.getMessage());
}
throws只是“声明可能抛异常”,真正捕获异常要用try-catch
如果你愿意,可以告诉我:
我可以给你更针对性的例子。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。