Sabtu, 09 April 2016

Exception Handling dalam Java Programming

Exception Handling dalam Java Programming


Exception class

           Exception adalah suatu mekanisme yang digunakan oleh beberapa bahasa pemrograman untuk mendeskripsikan apa yang harus dilakukan jika ada suatu kondisi yang tidak diinginkan terjadi. Eksepsi dapat dijumpai saat:
  • Mengakses method dengan argumen yang tidak sesuai
  • Membuka file yang tidak ada
  • Koneksi jaringan yang terganggu
  • Manipulasi operan yang nilainya keluar dari batasan yang didefinisikan
  • Pemanggilan class yang tidak ada
Keyword penting pada exception handling
Ada 5 keyword penting dalam java dalam hal exception handling

       1. TRY
keyword ini digunakan untuk mencoba menjalankan block program kemudian mengenai dimana munculnya kesalahan yang ingin diproses.

·         Contoh penggunaan :
public class A
{
    public static void main(String[] args) {
        try
        {
            int a = 1 / 0; // berpotensi untuk menimbulkan kesalahan yaitu
            // pembagian dengan bilangan 0
            System.out.println("perintah selanjutnya");
        }
        catch (Exception kesalahan)
        {
            System.err.println(kesalahan);
        }
    }
}
Output :
java.lang.ArithmeticException: / by zero
 
c      2. CATCH
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.

·         Contoh Program :
catch(Exception kesalahan)
{
    System.out.println(“mohon maaf, terdapat kesalahan pada program”);
    //lakukan hal lainnya disini
}
·         Keyword catch juga dapat diletakan berulang-ulang sesuai dengan kebutuhan. Contoh :
public class A
{
    public static void main(String[] args) {
        try
        {
            int a = 1/0;  //berpotensi untuk menimbulkan kesalahan yaitu pembagian dengan bilangan 0
            System.out.println("perintah selanjutnya");
        }
        catch(NullPointerException e)
        {
        }
        catch(ArrayIndexOutOfBoundsException e)
        {
        }
        catch(Exception e)
        {
        }
    }
}
3. FINALLY
Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada.

Contoh implementasinya pada program :
public class A
{
    public static void main(String[] args) {
        try
        {
            int a = 1/0;
        }
        catch (Exception e)
        {
            System.out.println(“ada kesalahan yang muncul”);
        }
        finally
        {
            System.out.println(“terima kasih telah menjalankan program”);
        }
    }
}
·         Output Program :
ada kesalahan yang muncul
terima kasih telah menjalankan program

4. throw
·         Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual. Contoh program :
public class A
{
    public static void main(String[] args) {
        try
        {
            throw new Exception("kesalahan terjadi");
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output Program :
java.lang.Exception: kesalahan terjadi

5. throws
Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan suatu kesalahan sehingga perlu ditangkap errornya. Cara mendefinisikannya dalam method adalah sebagai berikut : <method modifier> type method-name throws exception-list1, exceptio-list2, … {}.

·         Contoh Program :
public class A
{
    public static void main(String[] args) {
        try
        {
            f();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
    public static void f() throws NullPointerException, ArrayIndexOutOfBoundsException
    {
        //implementasi method
        throw new NullPointerException();
        //throw new ArrayIndexOutOfBoundsException();
    }
}
Output Program :
java.lang.NullPointerException


PROGRAM TRY-CATCH-FINALLY

class Coba {
   public static void main(String[] args) {
      System.out.println("starram\n");
      try{
         System.out.println(10/0);
      }
      catch(Throwable b) {
         System.err.println("terjadlahan >> "+b.getMessage());
      }
      finally {
         System.out.println("Pembagiann");
      }
      System.out.println("endrogram");
   }
}
Outputnya :
start program
terjadi kesalahan >> / by zero
pembagian nol
end of program
NB:
  • Program dibaca dari atas, mencetak start program terlebih dulu setelah itu baru masuk try
  • Di blok program try terjadi kesalahan. Kesalahannya, bilangan berapapun jika dibagi nol itu tidak bisa atau tidak terdefinisi.
  • Blok catch mencetak kesalahannya. Catch mempunyai parameter b yang berkelas Throwable. Throwable adalah kelas yang ada di package java.lang yang menangani eksepsi dan merupakan turunan dari kelas objek (kelas tertinggi di JAVA). Dan perlu diketahui blok ini akan dijalankan jika terjadi eksepsi saja.
  • System.err.println untuk mencetak kesalahan dan getMessage() adalah method untuk menampilkan kesalahan yang terjadi.
  • Blok finally itu bisa dikatakan seperti footer, jadi akan dijalankan di bagian terakhir saja dan akan tetap dijalankan walaupun tidak terjadi kesalahan atau eksepsi sekalipun
  • Setelah selesai akan keluar dari Try Catch dan mencetak end of program.

0 komentar:

Posting Komentar