Penanganan Eksepsi
Penanganan Eksepsi Untuk mengatasi kesalahan sewaktu program dieksekusi, java menyediakan penanganan eksepsi. Dalam hal ini sistem java akan “ melontarkan ” suatu eksepsi sekiranya terdapat suatu kesalahan sewaktu program dijalankan.
Cont’d Penanganan eksepsi pada java dapat digunakan untuk hal-hal berikut ini : Menangani kesalahan dengan menuliskan kode program kesalahan yang terpisah dengan kode yang akan ditangani. Sejumlah pernyataan dapat ditangani hanya menggunakan sebuah penanganan eksepsi.
Cont’d Menyediakan mekanisme yang memungkinkan untuk menjalankan kesalahan yang terjadi dalam sebuah metode ke metode yang melakukan pemanggilan metode tersebut. Menangani berbagai jenis kondisi tidak normal ( jenis kesalahan dapat diketahui )
Menangkap Eksepsi Agar kesalahan karena eksepsi dapat dikendalikan, eksepsi perlu “ ditangkap ”. Untuk keperluan menangkap eksepsi, java menyediakan pernyataan try. Pernyataan ini dua buah bentuk. Bentuk pertama berupa : Try { //Blok yang akan ditangkap sekiranya terjadi eksepsi. } Catch ( parameter ) { //Blok yang akan dijalankan kalau terjadi eksepsi
Pada pernyataan try di atas, parameter berupa nama kelas yang berhubungan dengan penanganan eksepsi dan diikuti dengan nama parameter. package bab14; public class baginol2 { public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch (Throwable t){ System.out.println("Terjadi pembagian nol"); System.out.println("Sesudah pembagian");
Pada bagian catch, parameter yang digunakan adalah t yang berkelas Throwale. Bagian ini akan dijalankan hanya kalau pernyataan yang terletak dalam blok try mengalami eksepsi. Jika telah dikompilasi program sbelumnya dan kemudian menjalankannya, maka akan diperoleh hasil seperti di bawah in :
Tampak bahwa dengan menggunakan try, kesalahan yang terjadi akibat pembagian dengan nilai nol tidak mengakibatkan eksekusi berhenti. Terbukti bahwa pernyataan system. Out. Println ( “ sesudah pembagian”); Dijalankan.
Program berikut merupakan alternatif lain dari program baginol12 Program berikut merupakan alternatif lain dari program baginol12.java yang menampilkan pesan kesalahan yang berasal dari parameter t ( yang berkelas throwable ) package bab14; public class baginol3 { public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch (Throwable t){ System.out.print("Pesan kesalahan: "); System.out.println(t.getMessage()); System.out.println("Sesudah pembagian");
s Hasil Program
Cacth secara bertingkat Java menyediakan berbagai kelas yang berhubungan dengan eksepsi. Kelas tertinggi yang telah anda kenal yaitu Throwable. Berdasarkan kelas ini, terdapat subkelas dengan nama Error dan exception. Subkelas Error antara lain digunakan untuk menangani kesalahan seperti memori habis (OutOfMemorierror) dan stack habis (stackOverflowError). Kesalahan seperti ini biasanya tidak perlu ditangani; atau dengan kata lain program segera diakhiri kalau menemukan eksepsi seperti ini.
Cont’d Subkelas Exception memiliki subkelas Runtime Exception yang digunakan untuk menangani kesalahan seperti subkrip array tidak valid (IndexOutOfBoundsException) dan kesalahan Arithmatika (ArithmaticException). Kesalahan yang tergolong dalam exception perlu ditangani: Misalnya kalau ada pembagian bilangan dengan bilangan nol, program dapat diatur agar tidak diakhiri.
Cont’d Dengan mengetahui berbagai kemungkinan jenis kesalahan, kita bisa menangkap berbagai kemungkinan eksepsi dengan menggunakan catch yang bertingkat. Perhatikan bahwa kelas throwwable diletakkan terakhir dengan tujuan untuk menangkap semua jenis eksepsi yang tidak tertangkap pada catch-catch sebelumnya.
Contoh package bab14; public class baginol5 { public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch (RuntimeException r){ System.out.println("RuntimeException"); catch (Exception e){ System.out.println("Exception"); catch (Throwable t){ System.out.println("Throwable"); System.out.println("Sesudah pembagian");
Jika telah mengkompilasi program di depan dan kemudian menjalankannya Jika telah mengkompilasi program di depan dan kemudian menjalankannya. Anda akan memperoleh hasil seperti di bawah ini :
Melontarkan Eksepsi Java menyediakan pernyataan yang digunakan untuk melontarkan eksepsi, yaitu pernyataan throw. Bentuk pernyataan ini : throw variabelObjek; Dalam hal ini variabel objek yang merunjuk ke suatu kelas eksepsi.Untuk melihat efek throw, perhatikan program berikut :
Cont’d package bab14; import java.io.*; class SuatuKelas { // Metode tanpa throws public void metodeA() { System.out.println("MetodeA"); } // Metode dengan throws 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 i) {
Jika telah dikompilasi program d atas dan kemudian Jika telah dikompilasi program d atas dan kemudian dijalankan, maka akan memperoleh hasi seperti berikut ini :
Terima kasih