Exception pada Java dan semua subclassnya tidak memberikan method yang spesifik. Oleh karena itu method-method ini terdapat dalam class Throwable, yang merupakan class dasar.
Tujuan dibuatnya class exception adalah untuk menentukan jenis-jenis exception yang berbeda sehingga setiap akar permasalahan dalam program dapat diidentifikasi dan ditangani sesuai dengan tipe exception-nya.
Setiap objek exception memiliki informasi yang penting mengenai exception itu sendiri. Untuk memperoleh informasi tersebut anda dapat menggunakan instance method dari class Throwable.

Beberapa method tersebut adalah:
a. public string getMessage()
Method ini akan mengembalikan pesan yang menjelaskan objek exception terkait. Programmer bisa memilih menggunakan method ini jika dia tidak ingin menyampaikan pesannya sendiri pada user.
Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Exception_getMessage { public static void main(String[] args) { int a = 4; int b = 0; try{ int c = a/b; System.out.println(c); } catch(Exception ex){ System.out.println(ex.getMessage());/* / by zero */ } } } |
Output:
/ by zero
b. public void printStackTrace()
Method ini akan membantu programmer untuk mengetahui dimana problem yang aktual terjadi. Dengan method ini beberapa baris pada konsol akan ditampilkan.
Baris pertama akan memberikan informasi mengenai nama subclass Throwable dan informasi package. Kemudian pada baris kedua dan seterusnya akan menjelaskan mengenai posisi kesalahan pada nomor baris tertentu yang di awali dengan “at”.
Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class Exception_printStackTrace { public static void main(String[] args) { int a [] = new int [5]; try{ a[5] = 5; } catch(Exception ex){ ex.printStackTrace(); } } } |
Output:
java.lang.ArrayIndexOutOfBoundsException: 5
at Exception_printStackTrace.main(Exception_printStackTrace.java:8)
c. getLocalizedMessage()
Method ini akan memberikan deskripsi lokal dari throwable. Subclass bisa mengoveride method ini untuk membuat pesan khusus secara lokal.
Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Exception_getLocalizedMessage { static void exceptionBaru()throws Exception{ System.out.println("Ini adalah method exceptionBaru()"); throw new Exception("Exception baru..."); } public static void main (String args []){ try { exceptionBaru(); } catch(Exception e) { System.err.println(e); //Deskripsi lokal dari throwable System.out.println(e.getLocalizedMessage()); } } } |
Output:
Ini adalah method exceptionBaru()
java.lang.Exception: Exception baru…
Exception baru…
d. public String toString()
Method ini akan mengembalikan deskripsi singkat dari throwable. Hasilnya merupakan gabungan string dari :
- Nama class dari objek exception
- Tanda “:” dan spasi
- Method getMessage()
Bila getLocalizedMessage mengembalikan nilai null maka method ini hanya mengembalikan nama class exception saja.Contoh 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Scanner; public class TestInteger { public static void main(String[] args) { Scanner input = new Scanner(System.in); try{ System.out.print("Masukkan nilai integer: "); int angka = input.nextInt(); System.out.print("Nilai integer adalah: " + angka); } catch (Exception ex){ System.out.println(ex.toString()); } } } |
Contoh output:
Masukkan nilai integer: 2.3
java.util.InputMismatchException
Contoh 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class Exception_toString { static int menjumlahkanElemenArray(int myArray[]){ int hasil = 0; for (int i = 0; i <= myArray.length; i++){ hasil += myArray[i]; } return hasil; } public static void main(String[] args) { try{ System.out.println(menjumlahkanElemenArray(new int[] {0, 1, 2, 3})); } catch(Exception ex){ System.out.println(ex.toString()); } } } |
Contoh Output:
java.lang.ArrayIndexOutOfBoundsException: 4
e. getStackTrace()
Method ini akan mengembalikan array dari elemen stack trace dan merepresentasikan stack trace yang berkaitan dengan objek exception.
Contoh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class Exception_getStackTrace { static int menjumlahkanElemenArray(int myArray[]){ int hasil = 0; for (int i = 0; i <= myArray.length; i++){ hasil += myArray[i]; } return hasil; } public static void main(String[] args) { try{ System.out.println(menjumlahkanElemenArray(new int[] {0, 1, 2, 3})); } catch(Exception ex){ System.out.println("Informasi yang didapatkan dari getStackTrace:"); StackTraceElement[] element = ex.getStackTrace(); for (int i = 0; i < element.length; i++){ System.out.print("Nama method: " + element[i].getMethodName()); System.out.print("(" + element[i].getClassName() + ":"); System.out.println(element[i].getLineNumber() + ")"); } } } } |
Contoh Output:
Informasi yang didapatkan dari getStackTrace:
Nama method: menjumlahkanElemenArray(Exception_getStackTrace:6)
Nama method: main(Exception_getStackTrace:14)
Leave a Reply