Menangkap Dan Menangani Exception Dengan Blok Try-Catch Pada Kegiatan Java
Sebelumnya anda sudah mengetahui cara untuk mendeklarasikan dan melemparkan exception. Jadi, dikala exception tersebut dilemparkan, maka sanggup ditangkap dengan blok try-catch yang akan dijelaskan pada kesempatan kali ini.
Blok tersebut ialah sebagai berikut:
Bila pada blok try tidak ditemukan exception maka blok catch akan diabaikan. Sebaliknya, jikalau terdapat exception pada blok try maka aktivitas akan melewatkan (skip) sisa pernyataan dari blok tersebut dan akan mulai mencari instruksi untuk menangani exception tersebut.
Setiap blok catch diperiksa secara bergantian. Dari yang pertama hingga dengan yang terakhir. Ini bertujuan untuk melihat apakah tipe dari objek exception ialah merupakan instance dari class exception dalam blok catch.
Jika tipe objek itu sesuai maka objek exception akan ditetapkan pada variabel yang dideklarasikan dan instruksi dalam blok catch akan dieksekusi.
Jika handler tidak ditemukan maka Java akan keluar dari method ini dan lalu akan mem-pass-kan exception pada method yang memanggil method, dan proses akan terus berlanjut hingga dengan handler ditemukan.
Pada akhirnya, jikalau handler masih tetap tidak ditemukan juga pada semua method berantai tersebut maka aktivitas akan tidak boleh dan pesan error akan ditampilkan pada konsol.
Proses untuk menemukan handler itu disebut dengan menangkap exception.
Maka mekanismenya adalah:
Urutan dalam memperlihatkan spesifikasi exception pada blok catch ialah hal yang penting. Jika hukum yang berlaku tidak diikuti maka compile error sanggup terjadi. Aturan ini ialah mengharuskan untuk blok catch untuk tipe subclass harus muncul lebih dahulu sebelum blok catch untuk tipe superclass.
Misalnya, urutan di bawah ini akan mengakibatkan compile error sebab RuntimeException ialah merupakan subclass dari Exception.
Dan rujukan yang benar ialah menyerupai ini:
Selain itu, jikalau berurusan dengan checked exception, maka anda harus memanggilnya dalam blok try-catch atau mendeklarasikan untuk melemparkan exception dalam memanggil method.
Sebagai contoh, misalkan method a memanggil method b , dan method b mungkin melemparkan checked exception, misalnya IOException, maka anda harus menulisnya menyerupai rujukan 1 dan 2 berikut ini:
Blok tersebut ialah sebagai berikut:
Bila pada blok try tidak ditemukan exception maka blok catch akan diabaikan. Sebaliknya, jikalau terdapat exception pada blok try maka aktivitas akan melewatkan (skip) sisa pernyataan dari blok tersebut dan akan mulai mencari instruksi untuk menangani exception tersebut.
Kode yang dipakai untuk menangani exception itu disebut dengan exception handler.
Setiap blok catch diperiksa secara bergantian. Dari yang pertama hingga dengan yang terakhir. Ini bertujuan untuk melihat apakah tipe dari objek exception ialah merupakan instance dari class exception dalam blok catch.
Jika tipe objek itu sesuai maka objek exception akan ditetapkan pada variabel yang dideklarasikan dan instruksi dalam blok catch akan dieksekusi.
Jika handler tidak ditemukan maka Java akan keluar dari method ini dan lalu akan mem-pass-kan exception pada method yang memanggil method, dan proses akan terus berlanjut hingga dengan handler ditemukan.
Pada akhirnya, jikalau handler masih tetap tidak ditemukan juga pada semua method berantai tersebut maka aktivitas akan tidak boleh dan pesan error akan ditampilkan pada konsol.
Proses untuk menemukan handler itu disebut dengan menangkap exception.
Mekanisme Exception Handling Pada Method Berantai
Misalkan main method memanggil method_1, method_1 itu memanggil method_2 dan method_2 memanggil method_3. Sementara itu, method_3 melemparkan exception. Seperti di bawah ini:Maka mekanismenya adalah:
- Bila tipe exception ialah Exception_3 dan ditangkap oleh blok catch untuk menangani exception exc_3 pada dalam method_2 maka pernyataaan_5 akan diabaikan, dan pernyataan_6 akan dieksekusi.
- Bila tipe exception adalah Exception_2 maka method_2 akan dibatalkan, kontrol akan dikembalikan ke method_1, dan exception ditangkap oleh blok catch untuk menangani exc_2 dalam method_1, sedangkan pernyataan_3 diabaikan dan pernyataan_4 akan dieksekusi.
- Bila tipe exception adalah Exception_1 maka method_1 akan dibatalkan, kontrol akan dikembalikan ke main method, dan exception ditangkap oleh blok catch untuk menangani exc_1 dalam main method, sedangkan pernyataan_1 diabaikan dan pernyataan_2 akan dieksekusi.
- Jika exception tidak sanggup ditangkap oleh method_2, method_1, ataupun main method, maka aktivitas akan tidak boleh dan pernyataan_1 serta pernyataan_2 tidak akan dieksekusi.
Urutan dalam memperlihatkan spesifikasi exception pada blok catch ialah hal yang penting. Jika hukum yang berlaku tidak diikuti maka compile error sanggup terjadi. Aturan ini ialah mengharuskan untuk blok catch untuk tipe subclass harus muncul lebih dahulu sebelum blok catch untuk tipe superclass.
Misalnya, urutan di bawah ini akan mengakibatkan compile error sebab RuntimeException ialah merupakan subclass dari Exception.
Dan rujukan yang benar ialah menyerupai ini:
Selain itu, jikalau berurusan dengan checked exception, maka anda harus memanggilnya dalam blok try-catch atau mendeklarasikan untuk melemparkan exception dalam memanggil method.
Sebagai contoh, misalkan method a memanggil method b , dan method b mungkin melemparkan checked exception, misalnya IOException, maka anda harus menulisnya menyerupai rujukan 1 dan 2 berikut ini:
Belum ada Komentar untuk "Menangkap Dan Menangani Exception Dengan Blok Try-Catch Pada Kegiatan Java"
Posting Komentar