class MyException extends Exception {
String msg;
public MyException(String msg) {
this.msg = msg;
}
public void printMsg() {
System.out.println("msg = " + msg);
}
}
class Thrower {
public void f() throws MyException {
throw new MyException("Inside f()");
}
public void g() throws MyException {
throw new MyException("Inside g()");
}
}
public class E08_ExceptionSpecification {
public static void main(String args[]) {
Thrower t = new Thrower();
try {
t.f();
t.g();
} catch(MyException e) {
e.printMsg();
}
}
}
最后的运行结果为:msg = Inside f()。想问一下,为什么同时调用f()、g(),抛出两个异常,却只捕获第一个?结果为什么不能是msg = Inside g()?
String msg;
public MyException(String msg) {
this.msg = msg;
}
public void printMsg() {
System.out.println("msg = " + msg);
}
}
class Thrower {
public void f() throws MyException {
throw new MyException("Inside f()");
}
public void g() throws MyException {
throw new MyException("Inside g()");
}
}
public class E08_ExceptionSpecification {
public static void main(String args[]) {
Thrower t = new Thrower();
try {
t.f();
t.g();
} catch(MyException e) {
e.printMsg();
}
}
}
最后的运行结果为:msg = Inside f()。想问一下,为什么同时调用f()、g(),抛出两个异常,却只捕获第一个?结果为什么不能是msg = Inside g()?