Thursday, January 24, 2013

Exception, Pengelolaan Kesalahan dengan Try Catch

Java menggunakan Exception untuk menangani kesalahan.
Exception merupakan event, atau kejadian yang berlangsung selama eksekusi sebuah kode program yang menyimpang dari program utama.
Pengkodean Java harus memenuhi kaidah Catch or Specify Requirement.  Yaitu setiap kode yang berpotensi menimbulkan kesalahan harus diselipkan dalam kedua hal berikut ini:

1.Pernyataan try,  yang akan memberikan penanganan kesalahan
2.Method yang menentukan yang melempar exception. -> method tsb harus melempar klausa yg mendaftarkan kemungkinan-2 kesalahannya. (dg throws exception).


JENIS EXCEPTION 
1.Checked Exception , biasanya semua exception seperti ini.  Dan Tergantung Catch or Specify Requirement.
2.Error, bersifat eksternal aplikasi dan biasanya aplikasi tidak bisa meng-handle. Dilakukan oleh class Error .
3.Runtime Exception, disebabkan oleh internal aplikasi juga. tidak tergantung Catch or Specify Requirement.
4. Unchecked Exception, yakni bila Programer memprioritaskan untuk membypass kesalahan.


STRUKTUR EXCEPTION 

try 
{
  //proses yang berpotensi salah
}
catch (ExceptionTypename variable)
{
//Penanganan kesalahan disini, misalnya pesan atau proses seandainya terjadi kesalahan.
}
note: perhatikan struktur inti dari try catch di atas. 
contoh:
try {
// Misalnya Proses Upload File
}

catch (FileNotFoundException e)
{ System.err.println("FileNotFoundException: " + e.getMessage());
throw new SampleException(e);
}

catch (IOException e)
{ System.err.println("Caught IOException: " + e.getMessage());
}

THROW EXCEPTION 
Ada beberapa kejadian di mana suatu program memang harus melempar pengecualian. Misalnya apabila program tersebut menemukan adanya kesalahan, tapi tidak ada cara yang tepat untuk menanganinya di tempat di mana kesalahan tersebut ditemukan. Program bisa melempar pengecualian dengan harapan di bagian lain pengecualian ini akan ditangkap dan diproses.


Melempar exception melalui throw, bisa dengan satu, atau lebih exception sekaligus.

Contoh:
 //proses method writeList melempar kesalahan yg ditentukan dalam IOException

public void writeList() throws IOException, ArrayIndexOutOfBoundsException {


//proses method writeList melempar kesalahan yg ditentukan dalam IOArrayIndexOutOfBoundsException
public void writeList() throws IOArrayIndexOutOfBoundsException {
//proses method writeList melempar kesalahan yg ditentukan oleh beberapa Exception public void writeList() throws IOException, ArrayIndexOutOfBoundsException {

BLOK FINALLY
finally selalu dieksekusi ketika keluar dari try.  Hal ini menjamin finally pasti dieksekusi meskipun terdapat exception yang tidak dikehendaki.
finally juga memungkinkan programer kode cleanup dibypass oleh return, continue, atau break
 

try
{
 // proses utama
}

catch (Exception e)
{


finally
if (out != null)
 { 

   System.out.println("Closing PrintWriter"); 
  out.close(); 

 }
else
   { System.out.println("PrintWriter not open");
  }

 }  


No comments: