//PROGRAM 9-19 class NegativeNumberException extends Exception { private int bilangan; // default constructor NegativeNumberException() { } // constructor dengan parameter bertipe String NegativeNumberException(String pesan) { super(pesan); } // constructor dengan parameter bertipe String dan int NegativeNumberException(String pesan, int nilai) { super(pesan); bilangan = nilai; } public int getBilangan() { return bilangan; } } class DemoMembuatEksepsi2 { public static void method1() throws NegativeNumberException { System.out.println("Melempar eksepsi dari method1()"); throw new NegativeNumberException(); // baris 29 } public static void method2() throws NegativeNumberException { System.out.println("Melempar eksepsi dari method2()"); throw new // baris 34, dilanjutkan ke bawah NegativeNumberException("Parameter bertipe String"); } public static void method3() throws NegativeNumberException { System.out.println("Melempar eksepsi dari method3()"); throw new NegativeNumberException( // baris 39 "Parameter bertipe String dan int", -4); } public static void main(String[] args) { // memanggil method1() try { method1(); // baris 47 } catch (NegativeNumberException nne) { nne.printStackTrace(); } System.out.println(); // memanggil method2() try { method2(); // baris 55 } catch (NegativeNumberException nne) { nne.printStackTrace(); } System.out.println(); // memanggil method3() try { method3(); // baris 63 } catch (NegativeNumberException nne) { nne.printStackTrace(); System.out.println("nne.bilangan = " + nne.getBilangan()); } } }