Perbedaan antara pengecualian yang diperiksa dan tidak dicentang

Perbedaan antara pengecualian yang diperiksa dan tidak dicentang

Penanganan pengecualian di Java adalah salah satu mekanisme yang kuat untuk menangani kesalahan spesifik yang muncul dalam urutan kode saat runtime. Pengecualian tidak lain adalah kesalahan runtime yang mengganggu aliran normal aplikasi.

Biasanya terjadi dalam sepotong kode dan ketika itu terjadi, objek yang mewakili pengecualian dibuat dan dilempar dalam metode yang menyebabkannya. Akibatnya, program atau aplikasi terganggu menyebabkan aplikasi diakhiri secara tidak normal, yang tidak disarankan. Inilah sebabnya mengapa pengecualian ini harus ditangani dan di sinilah mekanisme penanganan pengecualian datang ke gambar.

Ada dua jenis pengecualian yang ada di java - pengecualian yang diperiksa dan tidak dicentang. Dalam artikel ini, kita akan membahas secara rinci apa yang diperiksa dan pengecualian yang tidak dicentang dan kapan menggunakannya, dan terakhir, kita akan melihat perbedaan antara keduanya.

Apa yang diperiksa pengecualian di java?

Ini adalah pengecualian yang diperiksa dan ditangani pada waktu kompilasi. Java mendefinisikan beberapa kelas pengecualian di dalam paket standar Jawa.Lang, dan pengecualian yang paling umum adalah subkelas dari tipe standar RuntimeException.

Pengecualian yang terjadi di daerah di luar kendali langsung program ini dikenal sebagai pengecualian yang diperiksa. Jika metode melempar Pengecualian yang diperiksa pada waktu kompilasi yang tidak dapat menanganinya sendiri, maka ia harus menangani pengecualian di a menangkap memblokir atau menyatakan pengecualian menggunakan melempar Kata kunci, jika tidak, itu akan memberikan kesalahan kompilasi. Kompiler memeriksa jenis objek pengecualian untuk masing -masing melemparkan Pernyataan dan jika ditampilkan diperiksa, kompiler memeriksa kode sumber untuk memastikan pengecualian ditangani dalam metode di mana ia dilemparkan atau dinyatakan sehingga dapat ditangani lebih lanjut.

Semua pengecualian yang dijelaskan oleh Pengecualian yang merupakan subkelas langsungnya kecuali RuntimeException disebut pengecualian yang diperiksa. Sekarang kapan menggunakan pengecualian yang diperiksa? Anda dapat memilih untuk menggunakan pengecualian yang diperiksa ketika Anda tahu persis apa yang harus dilakukan saat Pengecualian terjadi atau saat kemungkinan kegagalan lebih. Beberapa contoh pengecualian yang diperiksa di Perpustakaan Java termasuk IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException, dll.

Apa itu pengecualian yang tidak dicentang di java?

Ini adalah pengecualian yang tidak diperiksa pada waktu kompilasi. Pengecualian yang tidak dicentang merupakan kondisi yang umumnya mencerminkan kesalahan dalam logika program dan yang tidak dapat dipulihkan dari saat runtime.

Secara sederhana, pengecualian yang tidak terkendali adalah pengecualian yang tidak terperangkap dalam a coba tangkap memblokir. Mereka tidak perlu ditangkap secara eksplisit. Bahkan, ketika pengecualian yang tidak terkendali terjadi, Java menangani pengecualian secara otomatis. Pengecualian yang tidak dicentang sebagian besar terjadi karena kesalahan pemrograman seperti saat mengakses elemen di luar ikatan array atau metode mengakses objek nol. Di Java, semua pengecualian di bawah Throwable adalah pengecualian yang diperiksa, sedangkan pengecualian yang merupakan subkelas langsung Kesalahan Dan RuntimeException adalah pengecualian yang tidak dicentang.

Bagian terbaik dari pengecualian yang tidak terkendali adalah tidak mengurangi keterbacaan kode sambil menjaga kode klien tetap bersih. Beberapa contoh pengecualian yang tidak terkendali termasuk ArithMeticException, ClasscastException, NullpointerException, ArrayIndexoutOfBound, IllegalargumentException, IllegalStateException, ArraySteeException, SecurityException, dll.

Perbedaan antara pengecualian yang diperiksa dan tidak dicentang

Definisi pengecualian yang diperiksa dan tidak dicentang

Pengecualian yang diperiksa dan tidak dicentang adalah dua jenis pengecualian yang ada di Java untuk memastikan aliran normal aplikasi. Keduanya melayani tujuan yang sama yaitu untuk menangani pengecualian di Java dan meskipun tidak ada perbedaan dalam fungsionalitas, tidak ada aturan tunggal untuk menentukan kapan harus menggunakan diperiksa dan kapan menggunakan pengecualian yang tidak dicentang. Pengecualian diperiksa adalah pengecualian yang diperiksa pada waktu kompilasi, sedangkan pengecualian yang tidak dicentang adalah yang tidak diperiksa pada waktu kompilasi.

Dasar -dasar pengecualian yang diperiksa dan tidak dicentang

Pengecualian yang diperiksa 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.

Penanganan pengecualian

Jika suatu metode melempar pengecualian yang diperiksa, kompiler akan memeriksa apakah metode tersebut menangani pengecualian menggunakan blok coba-cat atau tentukan pengecualian menggunakan kata kunci lemparan. Jika metode ini tidak memberikan kode penanganan, itu akan menunjukkan kesalahan kompilasi. Sebaliknya, program ini dikompilasi dengan baik karena kompiler tidak memeriksa pengecualian yang tidak dicentang pada waktu kompilasi.

Penyebab pengecualian yang diperiksa dan tidak terkendali

Pengecualian yang tidak berasal dari runtimeexception sering ditangani sedangkan karena pengecualian terjadi saat runtime jarang ditangani. Pengecualian yang diperiksa terjadi ketika kemungkinan kegagalan terlalu tinggi. Pengecualian yang tidak dicentang, di sisi lain, sebagian besar terjadi karena kesalahan pemrograman. Semua pengecualian di bawah runtimeException dan kelas kesalahan adalah pengecualian yang tidak dicentang, sedangkan yang lainnya di bawah Throwable diperiksa pengecualian.

Contoh pengecualian yang diperiksa dan tidak dicentang

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, SecurityException, dll.

Diperiksa vs. Pengecualian yang tidak dicentang: Bagan Perbandingan

Ringkasan pengecualian yang diperiksa dan tidak dicentang

Pengecualian yang diperiksa dan tidak dicentang adalah dua jenis pengecualian yang ada di java. Sementara fungsionalitasnya sama untuk kedua pengecualian, mereka memiliki perbedaan yang adil dari perbedaan. Perbedaan utama antara pengecualian yang diperiksa dan tidak dicentang adalah bahwa yang pertama diperiksa oleh kompiler sedangkan yang terakhir lolos 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 diperiksa dan apa yang tidak dicentang, kapan harus menggunakannya, dan menjelaskan perbedaan antara keduanya.