Perbezaan antara pengecualian yang diperiksa dan tidak terkawal

Perbezaan antara pengecualian yang diperiksa dan tidak terkawal

Pengendalian pengecualian di Java adalah salah satu mekanisme yang kuat untuk mengendalikan kesilapan tertentu yang timbul dalam urutan kod pada masa runtime. Pengecualian hanyalah ralat runtime yang mengganggu aliran biasa aplikasi.

Ia biasanya berlaku dalam sekeping kod dan apabila ia berlaku, objek yang mewakili pengecualian dibuat dan dilemparkan dalam kaedah yang menyebabkannya. Akibatnya, program atau aplikasi terganggu menyebabkan permohonan ditamatkan secara tidak normal, yang tidak disyorkan. Inilah sebabnya mengapa pengecualian ini akan dikendalikan dan ini adalah di mana mekanisme pengendalian pengecualian datang ke gambar.

Terdapat dua jenis pengecualian yang wujud di Jawa - pengecualian yang diperiksa dan tidak terkawal. Dalam artikel ini, kita akan membincangkan secara terperinci apa yang diperiksa dan dikecualikan dan tidak menggunakannya, dan akhirnya, kita akan melihat perbezaan antara kedua -dua.

Apa yang diperiksa pengecualian di Java?

Ini adalah pengecualian yang diperiksa dan dikendalikan pada masa penyusunan. Java mentakrifkan beberapa kelas pengecualian di dalam pakej standard Java.lang, Dan pengecualian yang paling biasa adalah subkelas jenis standard RuntimeException.

Pengecualian yang berlaku di kawasan di luar kawalan segera program ini dikenali sebagai pengecualian yang diperiksa. Jika kaedah melemparkan pengecualian yang diperiksa pada masa kompilasi yang tidak dapat mengendalikannya sendiri, maka ia mesti mengendalikan pengecualian dalam a menangkap menyekat atau mengisytiharkan pengecualian menggunakan melemparkan Kata kunci, jika tidak, ia akan memberikan ralat penyusunan. Pengkompil mengkaji jenis objek pengecualian untuk masing -masing lemparkan pernyataan dan jika ia menunjukkan diperiksa, pengkompil memeriksa kod sumber untuk memastikan pengecualian dikendalikan dalam kaedah di mana ia dilemparkan atau diisytiharkan supaya dapat dikendalikan lebih jauh.

Semua pengecualian yang diterangkan oleh Pengecualian yang merupakan subkelas langsung kecuali RuntimeException dipanggil pengecualian diperiksa. Sekarang bila hendak menggunakan pengecualian yang diperiksa? Anda boleh memilih untuk menggunakan pengecualian yang diperiksa apabila anda tahu apa yang perlu dilakukan semasa Pengecualian berlaku atau ketika peluang kegagalan lebih banyak. Beberapa contoh pengecualian yang diperiksa di perpustakaan Java termasuk IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException, dll.

Apa yang tidak terkecuali di Java?

Ini adalah pengecualian yang tidak diperiksa pada masa penyusunan. Pengecualian yang tidak terkawal mewakili keadaan yang umumnya mencerminkan kesilapan dalam logik program dan yang tidak dapat dipulihkan dari semasa runtime.

Secara ringkas, pengecualian yang tidak terkawal adalah pengecualian yang tidak ditangkap dalam cuba tangkap blok. Mereka tidak perlu ditangkap secara eksplisit. Sebenarnya, apabila pengecualian yang tidak terkawal berlaku, Java mengendalikan pengecualian secara automatik. Pengecualian yang tidak terkawal kebanyakannya berlaku disebabkan oleh kesilapan pengaturcaraan seperti ketika mengakses elemen di luar ikatan array atau mengakses kaedah objek null. Di Jawa, semua pengecualian di bawah boleh dibuang adalah pengecualian diperiksa, sedangkan pengecualian yang subkelas langsung Ralat dan RuntimeException pengecualian yang tidak terkawal.

Bahagian terbaik dari pengecualian yang tidak terkawal adalah bahawa ia tidak mengurangkan kebolehbacaan kod sambil mengekalkan kod klien yang bersih. Beberapa contoh pengecualian yang tidak terkawal termasuk ArithmeteXception, ClassCastException, NullPointerException, ArrayIndexOutofbound, IllegalargumentException, IllegalStateException, ArrayStoreException, SecurityException, dll.

Perbezaan antara pengecualian yang diperiksa dan tidak terkawal

Definisi pengecualian yang diperiksa dan tidak terkawal

Pengecualian yang diperiksa dan tidak terkawal adalah dua jenis pengecualian yang ada di Java untuk memastikan aliran biasa aplikasi. Kedua -duanya melayani tujuan yang sama ia. Pengecualian yang diperiksa adalah pengecualian yang diperiksa pada masa penyusunan, sedangkan pengecualian yang tidak terkawal adalah yang tidak diperiksa pada waktu penyusunan.

Asas pengecualian yang diperiksa dan tidak terkawal

Pengecualian yang diperiksa merujuk kepada senario yang tidak sah yang berlaku di luar kawalan segera program sedangkan pengecualian yang tidak terkawal merujuk kepada kesilapan dalam program atau pepijat dalam logik program yang tidak dapat dipulihkan dari semasa runtime.

Pengendalian pengecualian

Sekiranya kaedah membuang pengecualian yang diperiksa, pengkompil akan memeriksa sama ada kaedah itu mengendalikan pengecualian menggunakan blok percubaan atau tentukan pengecualian menggunakan kata kunci melemparkan. Sekiranya kaedah tidak memberikan kod pengendalian, ia akan menunjukkan ralat penyusunan. Sebaliknya, program ini dikumpulkan dengan baik kerana pengkompil tidak memeriksa pengecualian yang tidak terkawal pada waktu penyusunan.

Sebab pengecualian yang diperiksa dan tidak terkawal

Pengecualian yang tidak diperoleh dari runtimeexcepti. Pengecualian yang diperiksa berlaku apabila peluang kegagalan terlalu tinggi. Pengecualian yang tidak terkawal, sebaliknya, berlaku kebanyakannya disebabkan oleh kesilapan pengaturcaraan. Semua pengecualian di bawah kelas RuntimeExcepti.

Contoh pengecualian yang diperiksa dan tidak terkawal

Beberapa contoh pengecualian yang diperiksa ialah IOException, DataAccessException, IllegalAccessException, InterruptedExcepti. Contoh -contoh pengecualian yang tidak terkawal termasuk NullPointerException, ArithmeticException, ArrayIndexOutofbound, IllegalargumentException, IllegalStateException, ArrayStoreException, SecurityException, dll.

Diperiksa vs. Pengecualian yang tidak terkawal: Carta perbandingan

Ringkasan pengecualian yang diperiksa dan tidak terkawal

Pengecualian yang diperiksa dan tidak terkawal adalah dua jenis pengecualian yang wujud di Java. Walaupun fungsi sama untuk kedua -dua pengecualian, mereka mempunyai bahagian yang saksama terhadap perbezaan. Perbezaan utama antara pengecualian yang diperiksa dan tidak terkawal adalah bahawa bekas itu diperiksa oleh pengkompil sedangkan yang terakhir melarikan diri dari notis pengkompil. Pengecualian yang diperiksa dan dikendalikan pada masa kompilasi diperiksa pengecualian, sedangkan pengecualian yang tidak diperiksa dan dikendalikan pada masa penyusunan adalah pengecualian yang tidak terkawal. Artikel ini menerangkan apa yang diperiksa dan apa yang tidak terkecuali, bila menggunakannya, dan menerangkan perbezaan antara kedua -dua.