JENI Intro1 Bab12 Dasar Exception Handling

J.E.N. I .

BAB 1 2
D a sa r Ex ce pt ion H a n dling
1 2 .1 Tu j u a n
Dalam bagian ini, kit a akan m em pelaj ari t eknik yang dipakai dalam Java dalam m enangani kondisi
yang t idak biasa dalam m enj alankan operasi norm al dalam program . Teknik ini dinam akan
e x ce pt ion h a n dlin g.
Pada akhir pem bahasan, diharapkan pem baca dapat :

Mendefinisikan except ion

Menangani except ion m enggunakan blok t ry- cat ch- finally

1 2 .2

Apa it u Ex ce pt ion ?

Except ion adalah sebuah perist iwa yang m enj alankan alur proses norm al pada program . Perist iwa
ini biasanya berupa kesalahan( error) dari beberapa bent uk. I ni disebabkan program kit a berakhir
t idak norm al.

Beberapa cont oh dari except ion yang Anda m ungkin j um pai pada lat ihan- lat ihan sebelum nya
adalah: except ion ArrayI ndexOut OfBounds, yang t erj adi j ika kit a m encoba m engakses elem en
array yang t idak ada, at au Num berForm at Except ion, yang t erj adi ket ika kit a m encoba m elalui
param et er bukan angka dalam m et hod I nt eger.parseI nt .

1 2 .3 M e na nga n i Ex ce pt ion
Unt uk m enangani except ion dalam Java, kit a gunakan blok t ry- cat ch- finally. Apa yang kit a
lakukan dalam program kit a adalah kit a m enem pat kan pernyat aan yang m ungkin m enghasilkan
except ion dalam blok ini.
Bent uk um um dari blok t ry- cat ch- finally adalah,
try{
//tulis pernyataan yang dapat mengakibatkan exception
//dalam blok ini
}
catch( ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
. . .
Pengenalan Pem rogram an 1


1

J.E.N. I .

catch( ){
//tulis aksi apa dari program Anda yang dijalankan jika ada
//exception tipe tertentu terjadi
}
finally{
//tambahkan kode terakhir di sini
}

Except ion dilem parkan selam a eksekusi dari blok t ry dapat dit angkap dan dit angani dalam blok
cat ch. Kode dalam blok finally selalu di- eksekusi.
Berikut ini adalah aspek kunci t ent ang sint ak dari konst ruksi t ry-cat ch-finally:
 Not asi blok bersifat perint ah
 Set iap blok t ry, t erdapat sat u at au lebih blok cat ch, t et api hanya sat u blok finally.
 Blok cat ch dan blok finally harus selalu m uncul dalam konjungsi dengan blok t ry, dan diat as
urut an

 Blok t ry harus diikut i oleh pa lin g se dik it sat u blok cat ch ATAU sat u blok finally, at au
keduanya.
 Set iap blok cat ch m endefinisikan sebuah penanganan except ion. Header dari blok cat ch
harus m em bawa sat u argum en, dim ana except ion pada blok t ersebut akan dit angani.
Except ion harus m enj adi class pelem par at au sat u dari subclassesnya.

Gambar 1: Alur kejadian blok try-catch-finally

Pengenalan Pem rogram an 1

2

J.E.N. I .

Marilah m engam bil cont oh kode yang m encet ak argum en kedua ket ika kit a m encoba m enj alankan
kode m enggunakan argum en com m and- line. Perkirakan, t idak ada pengecekan dalam kode Anda
unt uk angka dari argum en dan kit a hanya m engakses argum en kedua args[ 1] segera, kit a akan
m endapat kan except ion berikut .

Exception in thread "main"

java.lang.ArrayIndexOutOfBoundsException: 1
at ExceptionExample.main(ExceptionExample.java:5)

Unt uk m encegah kej adian ini, kit a dapat m enem pat kan kode ke dalam blok t ry- cat ch. Blok finally
hanya sebagai pilihan lain saj a. Sebagai cont oh, kit a t idak akan m enggunakan blok finally.
public class ExceptionExample
{
public static void main( String[] args ){
try{
System.out.println( args[1] );
}catch( ArrayIndexOutOfBoundsException exp ){
System.out.println("Exception caught!");
}
}
}

Jadi kit a akan m enj alankan program lagi t anpa argum en, keluarannya akan m enj adi,
Exception caught!

Pengenalan Pem rogram an 1


3

J.E.N. I .

1 2 .4 La t ih a n
1 2 .4 .1

M e n a n gk a p Ex ce pt ion 1

Diberikan kode berikut :
public class TestExceptions{
public static void main( String[] args ){
for( int i=0; true; i++ ){
System.out.println("args["+i+"]="+
args[i]);
}
}
}
Com pile dan j alankan program Test Except ions. Keluarannya akan t am pak sepert i ini:

javac TestExceptions one two three
args[0]=one
args[1]=two
args[2]=three
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 3
at TestExceptions.main(1.java:4)

Ubah program Test Except ions unt uk m enangani except ion, keluaran program set elah dit angkap
except ion- nya akan sepert i ini:
javac TestExceptions one two three
args[0]=one
args[1]=two
args[2]=three
Exception caught:
java.lang.ArrayIndexOutOfBoundsException: 3
Quiting...

1 2 .4 .2 M e n a n gk a p Ex ce pt ion 2
Melakukan percobaan pada beberapa program yang t elah Anda t ulis adalah hal yang baik sebelum

m enghadapi except ion. Karena pada program di at as Anda t idak m enangkap except ion, m aka
eksekusi dengan m udahnya berhent i m engeksekusi program Anda. Kem bali kepada program
diat as dan gunakan penanganan except ion.

Pengenalan Pem rogram an 1

4