Anbefalt, 2024

Redaksjonens

Forskjellen mellom kontrollert og ukontrollert unntak i Java

"Throwable" er foreldreklassen i klassene Feil og Unntak. Klassen "RuntimeException" og dens underklasser, klassen "Feil" og dens undervisning er "Unchecked exceptions", mens de øvrige underklassene i klassen "Unntak" unntatt "RuntimeException" er de merkede unntakene. Den grunnleggende forskjellen mellom kontrollert og ukontrollert unntak er at de kontrollerte unntakene blir sjekket av kompilatoren, mens kompilatoren ikke sjekker de ukontrollerte unntakene .

La oss diskutere de andre forskjellene mellom sjekket og ukontrollert unntak ved hjelp av sammenligningstabellen.

Sammenligningstabel

Grunnlag for sammenligningKontrollert UnntakUnchecked Exception
grunn~~POS=TRUNCKompilatoren kontrollerer det merkede unntaket.Kompilatoren kontrollerer ikke Unchecked unntaket.
UnntaksklasseMed unntak av "RuntimeException" -klasse er alle barnklassene i klassen "Unntak", og "Feil" -klassen og dens barneklasser Kontrollert Unntak."RuntimeException" -klassen og dens barneklasser, er "Unchecked Exceptions".
håndteringHvis vi ikke håndterer det merkede unntaket, så er kompilatorobjektene.Selv om vi ikke klarer det ukontrollerte unntaket, gjør ikke kompilatoren det motsatte.
CompilationProgrammet kompilerer ikke hvis det er et ubehandlet kontrollert unntak i programkoden.Programmet kompilerer vellykket, selv om det er et uhåndtert ukontrollert unntak i programkoden.

Definisjon av sjekket unntak

De merkede unntakene er de unntakene som kontrolleres av kompilatoren for jevn utførelse av programmet. Kompilatoren kontrollerer om programmet kan håndtere det merkede unntaket eller ikke. Hvis koden ikke klarer å håndtere unntaket, oppstår det en kompileringsfeil. Alle underklassene i klassen "Unntak" unntatt klassen RuntimeException er de merkede unntakene.
La oss studere det kontrollerte unntaket med et eksempel.

 importer java.io. *; klasseeksempel {offentlig statisk tomt hoved (String args []) {FileInputStream fis = null; fis = ny FileInputStream ("B: /myfile.txt"); // Denne konstruktøren FileInputStream (Fil filnavn) kaster FileNotFoundException som er et kontrollert unntak. int k; mens ((k = fis.read ())! = -1) {// Metode leser () av ​​FileInputStream-klassen kaster også et kontrollert unntak: IOException. System.out.print ((char) k); } fis.close (); // Metoden i nærheten () lukker filinndatastrømmen som kaster IOException. }} 

I over kode prøver vi å åpne, lese og vise filinnhold. Det kan hende at filen ikke er til stede, da vil FileNotFoundException oppstå som er et kontrollert unntak. Hvis kontrollert unntak ikke håndteres, vil kompilatoren ikke tillate at programmet blir kompilert jevnt. Det vil vise kompilere tidsfeil. Så, for jevn kompilering, må det kontrollerte unntaket bli fanget eller erklært å bli kastet.

Definisjon av ukontrollert unntak

Unchecked Unntak er de unntakene som ikke er sjekket av kompilatoren. Kompilatoren kompilerer programmet vellykket, selv om unntakene ikke håndteres av koden. Klassen "Feil" og dens barneklasser, klassen "Runtime" og dens underklasser er de ukontrollerte unntakene.

La oss se et eksempel på et ukontrollert unntak.

 klasseeksempel {offentlig statisk tomrom main (String args []) {int arc [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); // ArrayIndexOutOfBoundsException. }} 

I overkoden kan du se at det finnes en ArrayIndexOutOfBoundsException, da jeg prøver å få tilgang til elementet som ikke eksisterer. Da dette er et ukontrollert unntak, vil det ikke oppstå tidsfeil, og filen blir kompilert uten noen feil. Men programmet vil ikke utføres til unntaket håndteres. Så, for jevn utførelse, må unntakene bli fanget eller erklæres kastet

Viktige forskjeller mellom kontrollert og ukontrollert unntak

  1. Sjekket unntak er i kunnskap om kompilatoren, mens ukontrollerte unntak ikke er kjent med kompilatoren.
  2. Unntatt RuntimeException og Error class er alle klassene sjekket unntak. På den annen side er RuntimeException og Error klasser ukontrollerte unntak.
  3. Hvis de kontrollerte unntakene ikke håndteres av koden, så er kompilatorobjektene. På den annen side, hvis vi ikke håndterer ukontrollerte unntak i koden, gjør kompilatoren ingen innvendinger.
  4. Hvis merkede unntak forekommer i koden, vil koden ikke kompilere mens, selv om ukontrollerte unntak ikke håndteres av koden, kompilerer kompilatoren koden.

Merk :

Både kontrollert eller ukontrollert unntak skjer obligatorisk under kjøretid. De blir bare sjekket eller fjernet av kompilatoren under kompileringstid.

Konklusjon:

Både de merkede og ukontrollerte unntakene må håndteres for å kunne utføre programmet jevnt.

Top