public static void main(String[] args) {
f2();
}
//自己捕捉异常
public static void f2() {
f1();
try {
InputStream is = new FileInputStream("e:\\2\\abc.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("f2...");
}
//自己捕捉异常
public static void f1() {
System.out.println("test throws");
try {
InputStream is = new FileInputStream("e:\\2\\abc.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("f1...");
}
我把System.out.println("f1...")和System.out.println("f2...")放在catch这行后面,程序在异常出现后会往下执行,这是意料之中的,但是把System.out.println("f1...")和System.out.println("f2...")放在try里面InputStream的下一行,就不会执行,这是JVM把InputStream和System.out.println当作共同体异常处了吗?所以JVM认为异常处往后没有代码了,直接结束程序?这样理解对吗?如果是对的,那为什么还有那么多人喜欢把代码都放在try里面呢?