//: Inheriting2.java // Inheriting your own exceptions class MyException2 extends Exception { public MyException2() {} public MyException2(String msg) { super(msg); } public MyException2(String msg, int x) { super(msg); i = x; } public int val() { return i; } private int i; } public class Inheriting2 { public static void f() throws MyException2 { System.out.println("Throwing MyException from f()"); throw new MyException2(); } public static void g() throws MyException2 { System.out.println("Throwing MyException from g()"); throw new MyException2("Originated in g()"); } public static void h() throws MyException2 { System.out.println("Throwing MyException from h()"); throw new MyException2("Originated in h()",47); } public static void main(String[] args) { try { f(); } catch (MyException2 e) { e.printStackTrace(); } try { g(); } catch (MyException2 e) { e.printStackTrace(); } try { h(); } catch (MyException2 e) { e.printStackTrace(); System.out.println("e.val() = " + e.val()); } } }