Professional Documents
Culture Documents
BAB 12 - Kegiatan Belajar 15 - Penanganan Eksepsi
BAB 12 - Kegiatan Belajar 15 - Penanganan Eksepsi
PENDAHULUAN Kesalahan pada umumnya ditangani sewaktu program dikompilasi. Namun tidak semua kesalahan dapat terdeteksi saat itu. Kesalahan yang lain seringkali terjadi sewaktu program dijalankan. Untuk itu, Java mengenal istilah eksepsi. Java menyediakan berbagai class yang berhubungan dengan eksepsi. Class tertinggi yang telah dikenal adalah Throwable. Berdasarkan class inilah, terdapat sub class dengan nama Error dan Exception. Sub class Error antara lain digunakan untuk menangani kesalahan seperti memori habis
(OutOfMemoryError) dan stack habis (StackOverflowError). Kesalahan seperti ini biasanya tidak perlu ditangani, dengan kata lain program segera diakhir jika menemukan eksepsi seperti ini. Sub class Exception memiliki sub class RuntimeException, yang digunakan untuk menangani kesalahan seperti subskrip array tidak valid (IndexOutOfBoundsException) dan kesalahan aritmatika (ArithmaticException).
133
134
Kriteria Penilaian Keberhasilan Anda dalam menguasai bab ini diukur berdasarkan kriteria kemampuan sebagai berikut : 1. Menjelaskan perbedaan dari masing-masing jenis eksepsi yang dikenal oleh Java 2. Dapat menangkap eksepsi dari berbagai macam jenis eksepsi yang dikenal oleh Java 3. Dapat menerapkan penanganan eksepsi dalam program Java
Sumber Pustaka 1. Abdul Kadir, 2005, Dasar Pemrograman Java 2, Andi, Yogyakarta. 2. Herbert Schildt, 2005, Java : A Beginners Guide, Third Edition, McGrawHill/Osborne, United States of America. 3. Herbert Schildt, Patrick Naughton , 1999, Java 2 : The Complete Reference, Fourth Edition, McGraw-Hill/Osborne, United States of America. 4. Indrajani, S.Kom., MM., Martin, S.Kom., 2007, Pemrograman Berorientasi Objek dengan Bahasa Java, PT. Elex Media Komputindo, Jakarta.
menyediakan penanganan eksepsi. Dalam hal ini sistem Java akan melontarkan suatu eksepsi sekiranya terdapat suatu kesalahan sewaktu program dijalankan. Penanganan eksepsi pada Java dapat digunakan untuk hal-hal berikut : 1. Menangani kesalahan dengan menuliskan kode penanganan kesalahan yang terpisah dengan kode yang akan ditangani. Sejumlah pernyataan dapat ditangani dapat hanya menggunakan sebuah penanganan eksepsi.
135
2. Menyediakan mekanisme yang memungkinkan untuk menjalarkan kesalahan yang terjadi dalam sebuah metode ke metode yang melakukan pemanggilan metode tersebut. 3. Menangani berbagai jenis kondisi tidak normal (jenis kesalahan dapat diketahui).
Pada pernyataan try di atas parameter berupa nama class yang berhubungan dengan penanganan eksepsi dan diikuti dengan nama parameter. Berikut ini contoh penggunaannya di dalam program :
Langkah 1 : Jalankan Notepad Ketiklah kode program berikut ini pada text editor notepad :
public class BagiNol { public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch (Throwable t) { System.err.println("Terjadi pembagian nol"); } System.out.println("Sesudah pembagian"); } }
Langkah 2 : Simpan Program Java Simpanlah kode program di atas dengan nama BagiNol.java pada direktori C:\PBO\.
136
Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :
(OutOfMemoryError) dan stack habis (StackOverflowError). Kesalahan seperti ini biasanya tidak perlu ditangani, dengan kata lain program segera diakhir jika menemukan eksepsi seperti ini. Sub class Exception memiliki sub class RuntimeException, yang digunakan untuk menangani kesalahan seperti subskrip array tidak valid (IndexOutOfBoundsException) dan kesalahan aritmatika (ArithmaticException). Kesalahan yang tergolong dalam Exception perlu ditangani, misalnya jika ada pembagian bilangan dengan bilangan nol, program dapat diatur agar tidak diakhiri. Berikut ini bentuk umumnya :
try { //blok yang akan ditangkap sekiranya terjadi eksepsi } catch (RuntimeException r) { //blok yang akan dijalankan jika terjadi RuntimeError } catch (Exception e) { //blok yang akan dijalankan jika terjadi eksepsi Exception } catch (Throwable t) { //blok yang akan terjadi jika terjadi eksepsi yang lain }
137
Langkah 1 : Jalankan Notepad Ketiklah kode program di bawah ini pada text editor notepad :
public class BagiNolLagi { public static void main(String args[]) { System.out.println("Sebelum pembagian"); try { System.out.println(2/0); } catch (RuntimeException r) { System.err.println("RuntimeException"); } catch (Exception e) { System.err.println("Exception"); } catch (Throwable t) { System.err.println("Throwable"); } System.out.println("Sesudah pembagian"); } }
Langkah 2 : Simpan Program Java Simpan kode program di atas dengan nama BagiNolLagi.java pada direktori C:\PBO\.
Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :
138
Dalam hal ini, variabelObjek menyatakan variabel objek yang merujuk ke suatu class eksepsi. Untuk melihat efek throw, perhatikan program berikut :
Langkah 1 : Jalankan Notepad Ketiklah kode program di bawah ini pada text editor notepad :
public class EfekThrow { public static void main(String[] args) { RuntimeException r; r = new RuntimeException(Eksepsi RuntimeException); System.out.println(Sebelum throw); throw(r); } }
Langkah 2 : Simpan Program Java Simpan kode program di atas dengan nama EfekThrow.java pada direktori C:\PBO\.
Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :
139
Langkah 2 : Simpan Program Java Simpan kode program di atas dengan nama EfekThrow2.java pada direktori C:\PBO\.
Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :
140
kesalahan akibat pemanggilan metode tersebut. Berikut ini contoh penggunaan klausa throws pada program :
Langkah 1 : Jalankan Notepad Ketiklah kode program berikut ini pada text editor notepad :
import java.io.*; class SuatuKelas { public void metodeA() { System.out.println(MetodeA); } public void metodeB() throws IOException { System.out.println(MetodeB); } } public class EfekThrows { public static void main(String args[]) { SuatuKelas obj = new SuatuKelas(); obj.metodeA(); try { obj.metodeB(); } catch (IOException e) { } } }
Langkah 2 : Simpan Program Java Simpan kode program di atas dengan nama EfekThrows.java pada direktori C:\PBO\.
Langkah 3 : Lakukan Kompilasi dan Jalankan Program Lakukan kompilasi dan jalankan program di atas seperti pada gambar berikut ini :
141
Rangkuman
1. Kesalahan pada umumnya ditangani sewaktu program dikompilasi. Namun tidak semua kesalahan dapat terdeteksi saat itu. Kesalahan yang lain seringkali terjadi sewaktu program dijalankan. Untuk itu, Java mengenal istilah eksepsi. 2. Penanganan eksepsi pada Java dapat digunakan untuk hal-hal berikut : a. Menangani kesalahan dengan menuliskan kode penanganan kesalahan yang terpisah dengan kode yang akan ditangani. Sejumlah pernyataan dapat ditangani dapat hanya menggunakan sebuah penanganan eksepsi. b. Menyediakan mekanisme yang memungkinkan untuk menjalarkan kesalahan yang terjadi dalam sebuah metode ke metode yang melakukan pemanggilan metode tersebut. c. Menangani berbagai jenis kondisi tidak normal (jenis kesalahan dapat diketahui).
Soal-soal Latihan
1. Sebutkan dan jelaskan eksepsi-eksepsi apa saja yang dapat ditangani oleh Java! 2. Apakah try dapat mengandung except dan finally sekaligus?