Disyorkan, 2024

Pilihan Editor

Perbezaan Antara Pengecualian Diperiksa dan Tidak Tersemak di Jawa

"Boleh terbakar" ialah kelas induk kelas Ralat dan Pengecualian. Kelas "RuntimeException" dan subkelasnya, kelas "Ralat" dan kelas kanak-kanaknya adalah "pengecualian yang tidak terkawal" manakala subclass yang lain dari kelas "Pengecualian" kecuali "RuntimeException" adalah pengecualian yang diperiksa. Perbezaan dasar antara pengecualian yang diperiksa dan tidak ditandakan adalah pengecualian yang diperiksa oleh pengkompil sedangkan, pengkompil tidak memeriksa pengecualian yang tidak ditandai .

Marilah kita membincangkan perbezaan lain antara pengecualian yang diperiksa dan tidak ditandatangani dengan bantuan carta perbandingan.

Carta Perbandingan

Asas untuk PerbandinganPengecualian diperiksaPengecualian tidak tercatat
AsasPengkompil memeriksa pengecualian yang diperiksa.Pengkompil tidak menyemak pengecualian yang tidak terkawal.
Kelas PengecualianKecuali kelas "RuntimeException" semua kelas kanak-kanak kelas "Pengecualian", dan kelas "Ralat" dan kelas anaknya adalah Pengecualian Diperiksa.Kelas "RuntimeException" dan kelas anaknya, adalah "Pengecualian Tidak Tersemak".
PengendalianJika kita tidak mengendalikan pengecualian yang diperiksa, maka objek penyusunnya.Walaupun kami tidak mengendalikan pengecualian yang tidak terkawal, pengkompil tidak membantah.
PenyusunanProgram ini tidak dikompilkan jika terdapat pengecualian diperiksa tanpa had dalam kod program.Program ini berjaya dikompilkan walaupun ada pengecualian yang tidak terkendali dalam kod program.

Definisi Pengecualian Diperiksa

Pengecualian yang diperiksa adalah pengecualian yang diperiksa oleh pengkompil untuk pelaksanaan yang lancar program. Pengkompil memeriksa sama ada program itu boleh mengendalikan pengecualian yang diperiksa atau tidak. Sekiranya kod tersebut tidak dapat mengendalikan pengecualian terdapat ralat ralat. Semua subkelas kelas "Pengecualian" kecuali kelas RuntimeException adalah pengecualian yang diperiksa.
Marilah kita mengkaji pengecualian yang diperiksa dengan contoh.

 import java.io. *; kelas Contoh {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Pembina FailInputStream ini (fail nama fail) melemparkan FileNotFoundException yang pengecualian diperiksa. int k; sementara ((k = fis.read ())! = -1) {// Kaedah membaca () kelas FileInputStream juga membuang pengecualian yang diperiksa: IOException. System.out.print ((char) k); } fis.close (); / // Kaedah rapat () menutup aliran input fail yang melemparkan IOException. }} 

Dalam kod di atas, kami cuba membuka, membaca dan memaparkan kandungan fail. Ia mungkin berlaku bahawa fail tidak hadir, maka FailNotFoundException akan berlaku yang merupakan pengecualian diperiksa. Jika pengecualian diperiksa tidak dikendalikan, maka pengkompil tidak akan membenarkan program itu disusun dengan lancar. Ia akan menunjukkan ralat waktu menyusun. Oleh itu, untuk penyusunan yang lancar, pengecualian yang diperiksa mesti ditangkap atau diisytiharkan dilemparkan.

Takrif Pengecualian Tidak Tersemak

Pengecualian yang tidak ditandai adalah pengecualian yang tidak diperiksa oleh pengkompil. Pengkompil menyusun program dengan jayanya walaupun pengecualian tidak dikendalikan oleh kod. Kelas "Ralat" dan kelas anaknya, kelas "Runtime" dan subclassnya adalah pengecualian yang tidak terkawal.

Marilah kita melihat contoh pengecualian yang tidak terkawal.

 kelas Contoh {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); // ArrayIndexOutOfBoundsException. }} 

Dalam kod di atas, anda dapat melihat bahawa terdapat ArrayIndexOutOfBoundsException, kerana saya cuba mengakses elemen yang tidak wujud. Oleh kerana ini adalah pengecualian yang tidak terkawal, ralat masa menyusun tidak akan berlaku, dan fail itu akan dikompil tanpa sebarang kesilapan. Tetapi program ini tidak akan dilaksanakan sehingga dikecualikan. Jadi, untuk pelaksanaan yang lancar, pengecualian mesti ditangkap atau diisytiharkan untuk dibuang

Perbezaan Utama Antara Pengecualian Diperiksa dan Tidak Tersemak

  1. Pengecualian yang diperiksa adalah dalam pengetahuan pengkompil sedangkan, Pengecualian tidak terkawal tidak mengetahui pengkompil.
  2. Kecuali kelas RuntimeException dan Ralat semua kelas diperiksa pengecualian. Sebaliknya, kelas RuntimeException dan Ralat adalah pengecualian yang tidak terkawal.
  3. Jika pengecualian yang diperiksa tidak ditangani oleh kod maka objek pengkompil. Sebaliknya, jika kita tidak mengendalikan pengecualian yang tidak terkawal dalam kod pengkompil itu tidak membantah.
  4. Sekiranya pengecualian yang diperiksa berlaku dalam kod kod tersebut tidak akan dikompilkan, walaupun pengecualian yang tidak terkawal tidak dikendalikan oleh kod pengkompil yang masih mengkompilasi kod tersebut.

Catatan :

Kedua-dua pengecualian diperiksa atau tidak terkawal secara paksa berlaku semasa runtime. Mereka hanya diperiksa atau tidak disemak oleh pengompil semasa masa penyusunan.

Kesimpulan:

Kedua pengecualian yang diperiksa dan tidak ditandatangani mesti dikendalikan untuk melaksanakan program dengan lancar.

Top