Senin, 01 Mei 2017

Excetion

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
  • 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
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



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");
}
}
}
view raw gistfile1.txt hosted with ❤ by GitHub

Tidak ada komentar:

Posting Komentar