EKSEPSI JAVA

PENANGANAN EKSEPSI




Eksepsi adalah keadaan tidak normal yang muncul pada suatu bagian program pada
saat dijalankan. Penanganan eksepsi pada java membawa pengelolaan kesalahan
program saat dijalankan kedalam orientasi-objek. Eksepsi java adalah objek yang
menjelaskan suatu keadaan eksepsi yang muncul pada suatu bagian program.

Saat suatu keadaan eksepsi muncul, suatu objek exception dibuat dan dimasukkan ke
dalam method yang menyebabkan eksepsi. Method tersebut dapat dipilih untuk
menangani eksepsi berdasarkan tipe tertentu. Method ini juga menjaga agar tidak keluar
terlalu dini melalui suatu eksepsi, dan memiliki suatu blok program yang dijalankan tepat
sebelum suatu eksepsi menyebabkan metodenya kembali ke pemanggil.

Eksepsi dapat muncul tidak beraturan dalam suatu method, atau dapat juga dibuat
secara manual dan nantinya melaporkan sejumlah keadaan kesalahan ke method yang
memanggil.
Dasar-dasar penanganan Eksepsi
Penanganan eksepsi pada java diatur dengan lima kata kunci :
  1. try-catch
  2. throw-throw
  3. finally
Pada dasarnya try digunakan untuk mengeksekusi suatu bagian program, dan jika
muncul kesalahan, sistem akan melakukan throw suatu eksepsi yang dapat anda catch
berdasarkan tipe eksepsinya, atau yang anda berikan finally dengan penangan default.

Tipe Eksepsi

A. Try dan Catch
 
Kata kunci try digunakan untuk menentukan suatu blok program yang harus dijaga
terhadap semua eksepsi, setelah blok try masukkan bagian catch, yang menentukan
tipe eksepsi yang akan ditangkap. Perhatikan contoh berikut:
public class Exc2 {
public static void main (String args[]) {
try {
int d = 0;
int a = 42 / d;
}
catch (ArithmeticException e) {
System.out.println( Division By Zero );
}}}
Outputnya=
C:\Documents and Settings\noviyanto\My Documents>java Exc2
Division By Zero 



 B.Throw-Throw

Pernyataan throw digunakan untuk secara eksplisit melemparkan suatu eksepsi.
Pertama kita harus mendapatkan penanganan dalam suatu instance throwable, melalui
suatu parameter kedalam bagian catch, atau dengan membuatnya menggunakan
operator new. Bentuk umum pernyataan throw :
throw ThrowableInstance;


Contoh :
class throwDemo {
static void demoProc() {
try {
throw new NullPointerException( demo ); }
catch (NullPointerException e) {
System.out.println( caught inside demoproc );
throw e; }
}
public static void main (String args[]) {
try { demoProc(); }
catch (NullPointerException e) {
System.out.println( recaugt : + e); }
} }
Output :
caught inside demoproc
recaught : java.lang.NullPointerException : demo 



C. FINNALY
 Finally
Saat suatu eksepsi dilemparkan, alur program dalam suatu method membuat jalur yang
cenderung tidak linier melalui method tersebut, melompati baris-baris tertentu, bahkan
mungkin akan keluar sebelum waktunya pada kasus dimana tidak ada bagian catch
yang cocok. Kadang-kadang perlu dipastikan bahwa bagian program yang diberikan
akan berjalan, tidak perduli eksepsi apa yang terjadi dan ditangkap. Kata kunci finally
dapat digunakan untuk menentukan bagian program seperti itu.


Setiap try membutuhkan sekurang-kurangnya satu bagian catch atau finally yang cocok.
Jika kita tidak mendapatkan bagian catch yang cocok, maka bagian finally akan
dieksekusi sebelum akhir program, atau setiap kali suatu method akan kembali ke
pemanggilnya, melalui eksepsi yang tidak dapat ditangkap, atau melalui pernyataan
return, bagian finally akan dieksekusi sebelum kembali ke method kembali.


Berikut adalah contoh program yang menunjukkan beberapa method yang keluar
dengan berbagai cara, tidak satupun tanpa mengeksekusi bagian finally-nyA.
class finallyDemo {
static void procA() {
try { System.out.println( Inside procA.. );
throw new RuntimeException( Demo ); }
finally { System.out.println( procA is finally ); }
}
static void procB() {
try { System.out.println( Inside procB.. );
return; }
finally { System.out.println( procB is finally ); }
}
public static void main(String args[]) {
try { procA( ); }
catch (Exception e){ };
procB(); }
}
Output :
Inside procA..
procA is finally
Inside procB..
procB is finally
 


Comments

Popular posts from this blog

CONTOH FORM INPUT REGISTRASI DAN LOGIN ADMIN CODEIGNITER

SQLi DUMPER 5.1 2014