Penanganan pengecualian di Jawa adalah salah satu mekanisme ampuh untuk menangani kesalahan spesifik yang muncul dalam urutan kode saat runtime. Pengecualian hanyalah kesalahan runtime yang mengganggu aliran normal aplikasi.
Biasanya terjadi dalam sepotong kode dan ketika itu terjadi, sebuah objek yang mewakili pengecualian dibuat dan terlempar dalam metode yang menyebabkannya. Akibatnya, program atau aplikasi terganggu sehingga aplikasi berhenti secara tidak normal, yang tidak direkomendasikan. Inilah sebabnya mengapa pengecualian ini harus ditangani dan di sinilah mekanisme penanganan pengecualian muncul pada gambar.
Ada dua jenis pengecualian yang ada di Jawa - Pengecualian Dicentang dan Tidak Dicentang. Dalam artikel ini, kita akan membahas secara terperinci apa yang diperiksa dan tidak terkecuali pengecualian serta kapan menggunakannya, dan terakhir, kita akan melihat perbedaan antara keduanya..
Ini adalah pengecualian yang diperiksa dan ditangani pada waktu kompilasi. Java mendefinisikan beberapa kelas pengecualian di dalam paket standar java.lang, dan pengecualian yang paling umum adalah subclass dari tipe standar RuntimeException.
Pengecualian yang terjadi di area di luar kendali langsung program dikenal sebagai pengecualian yang diperiksa. Jika suatu metode melempar pengecualian yang diperiksa pada waktu kompilasi yang tidak dapat menanganinya sendiri, maka itu harus menangani pengecualian dalam a tangkap blokir atau nyatakan pengecualian menggunakan melempar kata kunci, jika tidak maka akan memberikan kesalahan kompilasi. Kompiler memeriksa tipe objek pengecualian untuk masing-masing melemparkan pernyataan dan jika itu menunjukkan diperiksa, kompiler memeriksa kode sumber untuk memastikan pengecualian ditangani dalam metode di mana ia dilemparkan atau dideklarasikan sehingga dapat ditangani lebih lanjut.
Semua pengecualian dijelaskan oleh Pengecualian yang merupakan subclass langsungnya kecuali untuk RuntimeException disebut pengecualian yang diperiksa. Sekarang kapan harus menggunakan pengecualian yang diperiksa? Anda dapat memilih untuk menggunakan pengecualian yang dicentang ketika Anda tahu persis apa yang harus dilakukan ketika suatu Pengecualian terjadi atau ketika peluang kegagalan lebih. Beberapa contoh pengecualian yang diperiksa di perpustakaan Java termasuk IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException, dll.
Ini adalah pengecualian yang tidak diperiksa pada waktu kompilasi. Unchecked Exception merupakan kondisi yang umumnya mencerminkan kesalahan dalam logika program dan yang tidak dapat dipulihkan dari saat runtime.
Dalam istilah sederhana, pengecualian yang tidak dicentang adalah pengecualian yang tidak tertangkap dalam a coba tangkap blok. Mereka tidak perlu ditangkap secara eksplisit. Bahkan, ketika pengecualian yang tidak dicentang terjadi, Java menangani pengecualian secara otomatis. Pengecualian yang tidak dicentang sebagian besar terjadi karena kesalahan pemrograman seperti ketika mengakses elemen di luar ikatan array atau mengakses metode objek nol. Di Jawa, semua pengecualian dalam throwable adalah pengecualian yang diperiksa, sedangkan pengecualian yang merupakan subclass langsung dari Kesalahan dan RuntimeException adalah pengecualian yang tidak dicentang.
Bagian terbaik dari pengecualian tidak dicentang adalah bahwa itu tidak mengurangi pembacaan kode sambil menjaga kode klien tetap bersih. Beberapa contoh pengecualian yang tidak dicentang termasuk ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException, dll.
Checked dan Unchecked Exception adalah dua jenis pengecualian yang ada di Jawa untuk memastikan aliran normal aplikasi. Keduanya melayani tujuan yang sama yaitu untuk menangani pengecualian di Jawa dan meskipun tidak ada perbedaan dalam fungsionalitas, tidak ada aturan tunggal untuk menentukan kapan harus menggunakan diperiksa dan kapan harus menggunakan pengecualian yang tidak dicentang. Pengecualian yang Dicentang adalah pengecualian yang diperiksa pada waktu kompilasi, sedangkan Pengecualian Tidak Dicentang adalah pengecualian yang tidak dicentang pada waktu kompilasi.
Pengecualian yang dicentang mengacu pada skenario yang tidak valid yang terjadi di luar kendali langsung program sedangkan pengecualian yang tidak dicentang mengacu pada kesalahan dalam program atau bug dalam logika program yang tidak dapat dipulihkan dari saat runtime.
Jika suatu metode melempar pengecualian yang diperiksa, kompiler akan memeriksa apakah metode tersebut menangani pengecualian itu menggunakan blok coba-tangkap atau menentukan pengecualian menggunakan kata kunci lemparan. Jika metode ini tidak menyediakan kode penanganan, itu akan menampilkan kesalahan kompilasi. Sebaliknya, program mengkompilasi dengan baik karena kompilator tidak memeriksa Pengecualian Tidak Dicentang pada waktu kompilasi.
Pengecualian yang tidak diturunkan dari RunTimeException sering ditangani sedangkan pengecualian yang terjadi saat runtime jarang ditangani. Pengecualian Tercatat terjadi ketika peluang kegagalan terlalu tinggi. Pengecualian tidak dicentang, di sisi lain, terjadi sebagian besar karena kesalahan pemrograman. Semua pengecualian dalam kelas RuntimeException dan Kesalahan adalah pengecualian yang tidak dicentang, sedangkan semua yang lain di bawah throwable adalah pengecualian yang diperiksa.
Beberapa contoh pengecualian yang diperiksa adalah IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, dan banyak lagi. Contoh pengecualian yang tidak dicentang termasuk NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, ArrayStoreException, SecurityException, dll.
Checked dan Unchecked Exception adalah dua jenis pengecualian yang ada di Jawa. Meskipun fungsinya sama untuk kedua pengecualian, mereka memiliki perbedaan yang adil. Perbedaan utama antara pengecualian diperiksa dan tidak dicentang adalah bahwa yang pertama diperiksa oleh kompiler sedangkan yang terakhir luput dari pemberitahuan kompiler. Pengecualian yang diperiksa dan ditangani pada waktu kompilasi adalah pengecualian yang diperiksa, sedangkan pengecualian yang tidak diperiksa dan ditangani pada waktu kompilasi adalah pengecualian yang tidak dicentang. Artikel ini menjelaskan apa yang dicentang dan apa yang tidak dicentang pengecualian, kapan menggunakannya, dan menjelaskan perbedaan antara keduanya.