Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp pārbaudīto un nepārbaudīto izņēmumu Java

“Throwable” ir klašu klase Error and Exception. Klase “RuntimeException” un tās apakšklases, klase “Kļūda” un tās bērna klases ir “Nepārbaudīti izņēmumi”, bet pārējās klases “Izņēmums”, izņemot “RuntimeException”, apakšklases ir pārbaudīti izņēmumi. Galvenā atšķirība starp pārbaudīto un nepārbaudīto izņēmumu ir tā, ka pārbaudītus izņēmumus pārbauda kompilators, savukārt kompilators nepārbauda nepārbaudītos izņēmumus .

Apspriedīsim citas atšķirības starp pārbaudītajiem un nepārbaudītajiem izņēmumiem ar salīdzinājuma diagrammas palīdzību.

Salīdzinājuma diagramma

Salīdzinājuma pamatsPārbaudītais izņēmumsNav pārbaudīts izņēmums
PamataKompilators pārbauda pārbaudīto izņēmumu.Kompilators nepārbauda nepārbaudīto izņēmumu.
Izņēmuma klaseIzņemot "RuntimeException" klasi, visas klases "Izņēmums" bērna klases un "Kļūdu" klase un tās bērnu klases tiek pārbaudītas izņēmums."RuntimeException" klase un tās bērnu klases ir "Nav atzīmēti izņēmumi".
LietošanaJa mēs neizskatīsim pārbaudīto izņēmumu, tad kompilatora objektus.Pat ja mēs neapstrādājam nepārbaudītu izņēmumu, kompilators neiebilst.
KompilācijaProgramma nesagatavo, ja programmas kodā ir neapstrādāts pārbaudīts izņēmums.Programma veiksmīgi apkopo arī tad, ja programmas kodā ir neapstrādāts izņēmums.

Pārbaudītā izņēmuma definīcija

Pārbaudītie izņēmumi ir tie izņēmumi, kurus kompilators pārbauda programmas vienmērīgai izpildei. Kompilators pārbauda, ​​vai programma var apstrādāt pārbaudīto izņēmumu vai nē. Ja kods nespēj apstrādāt izņēmumu, rodas kompilācijas kļūda. Visas pārbaudītās izņēmumi ir visas “Izņēmuma” klases apakšklases, izņemot RuntimeException klasi.
Pētīsim pārbaudīto izņēmumu ar piemēru.

 importēt java.io *; klase Piemērs {public static void main (String args []) {FileInputStream fis = null; fis = jauns FileInputStream ("B: /myfile.txt"); // Šis konstruktors FileInputStream (faila faila nosaukums) met FileNotFoundException, kas ir pārbaudīts izņēmums. int k; kamēr ((k = fis.read ())! = -1) {// FileInputStream klases nolasīšanas metode (), arī tiek pārbaudīts izņēmums: IOException. System.out.print ((char) k); } fis.close (); // Metode aizveras () aizver faila ievades plūsmu, ko tas met IOException. }} 

Iepriekš minētajā kodā mēs mēģinām atvērt, lasīt un parādīt faila saturu. Var gadīties, ka fails nav klāt, tad notiks FileNotFoundException, kas ir pārbaudīts izņēmums. Ja pārbaudītais izņēmums netiek apstrādāts, kompilators neļaus programmu izvērst nevainojami. Tiks parādīta kompilēšanas laika kļūda. Tāpēc, lai veiktu vienmērīgu apkopošanu, pārbaudītajam izņēmumam jābūt nozvejotam vai izsludinātam.

Nepārbaudītā izņēmuma definīcija

Nav atzīmēti izņēmumi ir tie izņēmumi, kurus kompilators nav pārbaudījis. Kompilators veiksmīgi apkopo programmu, pat ja koda izņēmumi netiek apstrādāti. Klases “Kļūda” un tās bērnu klases, klase “Runtime” un tās apakšklases ir nepārbaudītie izņēmumi.

Skatīsim nepārbaudītā izņēmuma piemēru.

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

Iepriekš minētajā kodā var redzēt, ka ir ArrayIndexOutOfBoundsException, jo es cenšos piekļūt elementam, kas nepastāv. Tā kā tas ir nekontrolēts izņēmums, kompilēšanas laika kļūda nenotiks, un fails tiks apkopots bez kļūdām. Bet programma netiks izpildīta līdz izņēmuma apstrādei. Tātad, lai veiktu vienmērīgu izpildi, izņēmumi ir jāķer vai jādeklarē kā izmesti

Galvenās atšķirības starp pārbaudīto un nepārbaudīto izņēmumu

  1. Pārbaudītie izņēmumi ir zināmi kompilatoram, bet nepārbaudītie izņēmumi nav kompilatora zināšanas.
  2. Izņemot RuntimeException un Error class, visas klases tiek pārbaudītas, izņemot. No otras puses, RuntimeException un Error klases ir nepārbaudīti izņēmumi.
  3. Ja pārbaudītie izņēmumi netiek apstrādāti ar kodu, tad kompilatora objekti. No otras puses, ja neizmantojam nekontrolētos izņēmumus kodā, kompilators neiebilst.
  4. Ja kodā ir pārbaudīti izņēmumi, kods netiek apkopots, bet, pat ja kods nav apstrādāts ar nekontrolētiem izņēmumiem, kompilators joprojām apkopo kodu.

Piezīme :

Gan pārbaudītais, gan nepārbaudītais izņēmums obligāti notiek izpildīšanas laikā. Kompilators tos pārbauda vai nepārbauda tikai kompilēšanas laikā.

Secinājums:

Gan pārbaudītie, gan nepārbaudītie izņēmumi ir jārīkojas, lai programma netraucēti izpildītu.

Top