0% menganggap dokumen ini bermanfaat (0 suara)
36 tayangan7 halaman

Modull

Modul ini membahas penanganan kesalahan (exception handling) dalam pemrograman Java. Terdapat beberapa kata kunci untuk menangani exception seperti try, catch, finally, throw, dan throws. Exception dibagi menjadi dua kelompok yaitu yang merupakan subclass dari RunTimeException dan yang bukan. Contoh kode mendemonstrasikan penggunaan blok try-catch dan statement finally.

Diunggah oleh

Tia Istiana
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
36 tayangan7 halaman

Modull

Modul ini membahas penanganan kesalahan (exception handling) dalam pemrograman Java. Terdapat beberapa kata kunci untuk menangani exception seperti try, catch, finally, throw, dan throws. Exception dibagi menjadi dua kelompok yaitu yang merupakan subclass dari RunTimeException dan yang bukan. Contoh kode mendemonstrasikan penggunaan blok try-catch dan statement finally.

Diunggah oleh

Tia Istiana
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

MODUL 12

EXCEPTION HANDLING

CAPAIAN PEMBELAJARAN

Dapat menggunakan perintah yang menangani Exception pada


program,menggunakan throws untuk melempar eksepsi dan membuat
Execption sendiri

KEBUTUHAN ALAT/BAHAN/SOFTWARE

Alat : Komputer, Viewer


Software : Java, TextPad/Netbean

DASAR TEORI

Dalam pembuatan program seringkali dijumpai error atau kesalahan. Oleh


karena itu, diperlukan suatu mekanisme yang membantu menangani error atau
kesalahan yang terjadi, baik saat pembuatan maupun implementasi program.
Java menyediakan mekanisme dalam pemrograman untuk menangani hal-hal
tersebut yang disebut dengan exception.

Exception adalah event yang terjadi ketika program menemui kesalahan


pada saat instruksi program dijalankan. Banyak hal yang dapat menimbulkan
event ini, misalnya crash, harddisk rusak dengan tiba-tiba, sehingga program-
program tidak bisa mengakses file-file tertentu. Programmer pun dapat
menimbulkan event ini, misalnya dengan melakukan pembagian dengan
bilangan nol, atau pengisian elemen array melebihi jumlah elemen array yang
dialokasikan dan sebagainya.

Exception terdiri dari dua macam kelompok, yaitu :


 Exception yang merupakan subclass RunTimeException
 Exception yang bukan subclass RunTimeException

26
RunTimeException biasanya disebabkan oleh kesalahan program atau pada
desain program. Misalnya NullPointerException yang disebabkan oleh proses
inisialisasi program yang tidak sempurna dan ArrayIndexOutOfBoundsException
yang disebabkan akses array yang melebihi kapasitas array yang ada.

Dalam bahasa Java, ketika terjadi kesalahan, otomatis akan dilemparkan


sebuah objek yang disebut exception, yang kemudian dapat diproses lebih
lanjut oleh fungsi-fungsi yang siap menangani kesalahan tersebut. Proses
pelemparan exception tersebut sering dikenal dengan istilah throwing
exception, sedangkan proses penerimaan exception yang bersangkutan dikenal
dengan istilah catch exception

Ada lima kata kunci yang digunakan oleh Java untuk menanngani
exception ini, yaitu, try, catch, finally, throw, dan throws.

Situasi yang menyebabkan exception dibagi menjadi 3 kategori yaitu,

 Kesalahan kode atau data. Contohnya jika kode berusaha mengakses


suatu indeks dari array yang di luar batas array.
 Metode standar exception. Contohnya, metode substring() dalam
kelas String, dapat memunculkan pesan dalam bentuk
StringIndexOutofBoundsException.
 Kesalahan Java. Hal ini merupakan kesalahan dalam mengeksekusi
Java Virtual Machine yang dijalankan pada saat kompilasi.

Istilah exception digunakan untuk menunjukkan kesalahan pada


hardware, software, serta algoritma. Suatu exception adalah obyek dari kelas
standar Throwable, yang mempunyai turunan terdiri dari :

 Error. Exception yang didefinisikan dalam keas ini mempunyai


karakteristik bahwa kondisi yang terjadi tidak dapat diubah. Terdapat
tiga macam subclass yang berada dibawahnya yaitu, ThreadDeath,
Linkage Error, VirtualMachineError.
 Exception. Untuk kelas yang diturunkan dari exception kompiler
memeriksa bahwa kita bisa menangani exception dengan metode yang
ada.

Kelas exception mempunyai banyak kelas turunan. Dua kelas yang penting yaitu,

 IOException
 RuntimeException

27
Tabel Subkelas dari RunTime Exception

Kelas Keterangan

ArithmeticException Kesalahan pada operasi aritmatika

IndexOutofBoundsException Beberapa jenis indeks di luar batas

NegativeArraySizeException Array diciptakan dengan ukuran negatif

NullPointerExcepotion Penggunaan acuan null yang tidak


valid

ArrayStroreException Penyimpanan array dengan tipe data


yang tidak sesuai.

ClassCastException Cast yang tidak valid

IllegalArrayArgumentException Argumen yang tidak benar

SecurityException Aturan sekuriti yang dilanggar

IllegalMonitorStateException Operasi monitor ilegal

IllegalStateException Lingkungan yang tidak benar

UnsupportedOperationException Operasi yang tidak didukung

Kata kunci throw digunakan di program untuk melempar (throw) exception secara
eksplisit. Bentuk umum kalimat adalah,

Throw ThrowableInstance;

Instan Throwable harus merupakan obyek dengan tipe Throwable atau subkelas
dari Throwable. Terdapat dua cara untuk memperoleh obyek Throwable, yaitu,
1. Menggunakan parameter di klausa catch
2. Menciptakab salah satu dengan menggunakan operator new()

Eksekusi program akan dihentikan segera setelah kalimat throw, kalimat-kalimat


setelah kalimat throw tidak dieksekusi. Java akan melakukan inspeksi blok try
terdekat untuk menemukan catch yang cocok dengan dengan tipe exception
yang dilempar. Jika Java menemukannya, maka kendali program ditransfer ke
kalimat itu. Jika tidak ditemukan, maka Java akan melakukan penelusuran ke
blok berikutnya dan bila tetap tidak ditemukan, maka penanganan exception
secara default akan menghentikan programnya.

Penggunaan kata kunci throws berhubungan erat dengan penggunaan


exception yang dicek oleh Java. Klausa throws mendaftarkan tipe-tipe exception
yang dapat dilempar method. Hal ini diperlukan agar diketahui semua exception

28
yang mungkin dilempar method atau subkelasnya, kecuali tipe Error atau
RunTimeException yang dilakukan sistem Java secara otomatis bila menemui
pelangggaran aturan-aturan Java. Semua exception yang hendak dilempar
method harus dideklarasikan di klausa throws. Jika method melemparkan
exception yang tidak dideklarasikan di deklarasi method, maka kompilator akan
memberi pesan kesalahan
Hirarki kelas yang menangani exception:

Kelas paling tinggi dalam


menangani exception

Struktur penulisan exception adalah :

try {
// blok program tempat menuliskan statement yang akan di uji
apakan ada kesalahan atau tidak
}
catch ( <tipe exception1> <nama variabel>) {
// blok program tempat menuliskan aksi program bila sebuah
exception terjadi
}
. . .
catch ( <tipe exception2> <nama variabel>) {
// blok program tempat menuliskan aksi program bila sebuah
exception terjadi
}
finally {
// blok program lanjutan

Ketentuan dalam membuat exception adalah:


a. Wajib membuat notasi blok
b. Setiap blok try boleh memiliki lebih dari satu blok catch dan hanya boleh
memiliki satu blok finally
c. Blok catch dan blok finally harus muncul bersama blok try
d. Blok try harus diikuti minimal satu blok catch, atau satu blok finally, atau
kedua blok catch dan finally
e. Setiap blok catch mendefinisikan penanganan exception. Di dalam
header blok catch terdapat satu argumen yang akan ditangani oleh blok

29
exception. Exception harus berasal dari class Throwable atau dari class
turunannya.

Alur kerja dari exception :

PRAKTIK

Praktik 1 . Membuat kelas tanpa exception

1. public class BagiNol {


2. public static void main(String[] args) {
3. System.out.println("Sebelum pembagian");
4. System.out.println(5/0);
5. System.out.println("Sesudah pembagian");
6. }
7. }

Baris ke-5 tidak akan dieksekusi karena ada kesalahan pembagian dengan
bilangan nol pada baris ke-4

Praktik 2 . Membuat kelas menggunakan exception

1. public class BagiNol2 {


2. public static void main(String[] args) {
3. System.out.println("Sebelum pembagian");
4. try { System.out.println(5/0); }
5. catch (Exception t) {

30
6. System.out.print("Pesan kesalahan: ");
7. System.out.println(t.getMessage());
8. }
9. System.out.println("Sesudah pembagian");
10. }
11. }

Program tidak berhenti di baris ke -4 , dibuktikan dengan munculnya hasil dari


baris ke-9

Praktik 3 . Menggunakan lebih dari satu statement catch

public class MultiCatchException{


public static void main(String args[]){
try{
System.out.println(5/0);
}
catch(ArithmeticException e){
System.out.println(0);
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println(1);
}
catch(Exception e){
System.out.println(2);
}
}
}

Output adalah angka nol yang artinya pada blok try terdapat kesalahan arithmetic
maka kesalahan tersebut ditangkap oleh blok catch dari kelas
ArithmeticException.

Praktik 4 . Menggunakan statement finally

public class MultiCatchException{


public static void main(String args[]){
try{
System.out.println(5/0);
}
catch(ArithmeticException e){
System.out.println(0);
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println(1);
}
catch(Exception e){
System.out.println(2);
}
finally{
System.out.println(3);
}

31
}
}
Bagian blok finally adalah bagian blok yang selalu dikerjakan. Output program
adalah angka nol dan tiga, artinya setelah salah satu blok catch dieksekusi maka
alur program selanjutnya adalah mengeksekusi bagian blok finally.

Praktik 5.Menggunakan kata kunci throw untuk eksepsi

public class DemoEksepsi {


public static void methodLain() {
try {
throw new ArrayIndexOutOfBoundsException(1);
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("Penanganan eksepsi dalam Method MethodLain()");
throw e;
}
}
public static void main(String[]args) {
try {
methodLain();
}
catch (ArrayIndexOutOfBoundsException e){
System.out.println("Penanganan eksepsi dalam Method main()");
}
}
}

LATIHAN

1. Diberikan oleh dosen pengampu

TUGAS

1. Tugas diberikan oleh dosen pengampu pada akhir praktikum.


2. Dikerjakan di rumah dan dilampirkan pada laporan.

REFERENSI

32

Anda mungkin juga menyukai