Exception merupakan subkelas dari kelas java.lang.Throwable. Exception adalah sebuah kelas maka hakikatnya ketika program berjalan dan muncul sebuah bug atau kesalahan maka bug tersebut dapat dianggap sebuah object. Sehingga ketika object ini di tampilkan di layar maka java akan secara otomatis memanggil method toString yang terdapat dalam object bertipe Exception ini. Java memberikan akses kepada developer untuk mengambil object bug yang terjadi ini dengan mekanisme yang dikenal Exception Handling. Exception handling merupakan fasilitas di java yang memberikan flexibilitas kepada developer untuk menangkap bug atau kesalahan yang terjadi ketika program berjalan. Selain Exception, java.lang. Throwable juga memiliki subclass yaitu class Error.
Class Error dan Class Exception
Pada dasarnya error dan exception itu berbeda. Error merupakan masalah yang muncul tapi tidak ada alasan yang kuat untuk menangkapnya. Sedangkan Exception merupakan kesalahan kecil yang muncul dan ingin diperlakukan sesuai keinginan developer.
Keyword Penting pada exception handling
1.try
Keyword ini biasanya digunakan dalam suatu block program. keyword ini digunakan untuk mencoba menjalankan block program kemudian mengenai dimana munculnya kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword catch atau keyword finally yang akan dibahas pada point kedua dan ketiga.
2. catch
Jika anda sudah melihat contoh try maka secara tidak langsung anda sudah memahami kegunaan dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try. Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block try. Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal apapun pada block catch sesuai keinginan developer.
3. finally
Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada.
4. throw
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual.
5. throws
Keyword throws digunakan dalam suatu method yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya.
- Checked Exception
Adalah eksepsi yang diantisipasi oleh programmer untuk dihandle
dalam program dan terjadi dikarenakan oleh kondisi luar yang siap muncul
saat program berjalan. Misalnya membuka file yang tidak ada atau
gangguan jaringan.
Yang termasuk checked exception adalah class java.lang.Throwable dan semua subclassnya, kecuali class dan subclass dari java.lang.Error dan java.lang.RuntimeError
Yang termasuk checked exception adalah class java.lang.Throwable dan semua subclassnya, kecuali class dan subclass dari java.lang.Error dan java.lang.RuntimeError
- Unchecked Exception
bisa muncul dari kondisi yang merepresentasikan adanya bug atau situasi
yang secara umum dianggap terlalu sulit bagi program untuk
menghandlenya. Disebut sebagai unchecked karena kita tidak perlu
mengeceknya atau melakukan sesuatu jika kondisi ini terjadi. Eksepsi
yang muncul dari kategori situasi yang merepresentasikan bug ini disebut
sebagai runtime exception. Misalnya mengakses array melebihi size yang
dimilikinya.
Yang termasuk Unchecked exception
Yang termasuk Unchecked exception
1.
java.lang.Error
dan subclassnya
2.
java.lang.RuntimeException
dan subclassnya.
- Sedangkan eksepsi yang muncul sebagai akibat dari isu environment software – yang ini jarang sekali atau sulit sekali untuk dihandle- disebut sebagai error, misalnya running out memory.
Jadi, class Exception mendefinisikan kondisi error yang ringan yang
dijumpai oleh program. Sedangkan untuk kondisi error yang berat
didefinisikan dengan Error.
Latihan
Latihan
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package exception1; | |
/** | |
* Created by nui on 5/1/2017. | |
*/ | |
public class Latihan2 { | |
public static void main(String[] args) { | |
int bil=10; | |
String b[] = {"a","b","c"}; | |
//contoh ArithmeticException | |
try{ | |
System.out.println(bil/0); | |
}catch(ArithmeticException e){ | |
System.out.println("Error AritmetikException"); | |
} | |
//contoh ArrayStoreException | |
try { | |
Object[] s = new Integer[4]; | |
s[0] = 4.4; | |
} catch (ArrayStoreException e) { | |
System.out.println("Error ArrayStoreException"); | |
} | |
//contoh ClassCastException | |
try { | |
Object angka = new Integer(90); | |
System.out.println((String)angka); | |
}catch (ClassCastException e){ | |
System.out.println("Error ClassCastException"); | |
} | |
//contoh ArrayIndexOutOfBoundsException | |
try{ | |
int kelompok[]=new int[10]; | |
//Array cuma ada 10 elemen | |
kelompok[11] = 9; | |
} | |
catch(ArrayIndexOutOfBoundsException e){ | |
System.out.println ("Error ArrayIndexOutOfBounds"); | |
} | |
//contoh StringIndexOutBoundsException | |
try{ | |
String str="contoh"; | |
char c = str.charAt(0); | |
c = str.charAt(40); | |
System.out.println(c); | |
}catch(StringIndexOutOfBoundsException e){ | |
System.out.println("Error StringIndexOutOfBoundsException"); | |
} | |
//contoh NegativeArraySizeException | |
try{ | |
int data[] = new int[-4];//Contoh array negatif | |
data[-4] = 9; | |
System.out.println(data[-4]); | |
}catch(NegativeArraySizeException e){ | |
System.out.println("Error NegativeArraySizeException"); | |
} | |
//contoh NullPointerException | |
try { | |
String str = null; | |
System.out.println(str.length()); | |
}catch (NullPointerException e){ | |
System.out.println("Error NullPointerException"); | |
} | |
//contoh NumberFormatException | |
try { | |
int number = Integer.parseInt("bukan angka"); | |
System.out.println(number); | |
}catch (NumberFormatException e){ | |
System.out.println("Error NumberFormatException"); | |
} | |
} | |
} |
Tidak ada komentar:
Posting Komentar