class MyException extends Exception { }
public class RethrowException {
public static void main(String[] args) {
try {
M1();
} catch (Exception e) {
System.out.println("main(): Caught " + e.toString());
}
}
public static void M1() throws MyException {
try {
M2();
} catch (Exception e) {
System.out.println("M1(): Caught " + e.toString());
System.out.println("M1(): Rethrowing " + e.toString());
throw e;
}
}
public static void M2() throws MyException {
System.out.println("M2(): Throwing MyException...");
throw new MyException();
}
}
Output:
$ java RethrowException M2(): Throwing MyException... M1(): Caught MyException M1(): Rethrowing MyException main(): Caught MyException