Anbefalt, 2024

Redaksjonens

Forskjellen mellom feil og unntak i Java

"Throwable" fungerer som roten for Java's feil- og unntakshierarki. Feil er en kritisk tilstand som ikke kan håndteres av programkoden. "Unntak" er den eksepsjonelle situasjonen som kan håndteres av programkoden. Den betydelige forskjellen mellom feil og unntak er at en feil skyldes mangel på systemressurser, og et unntak er forårsaket på grunn av koden din. La oss studere andre forskjeller mellom feil og unntak sammen med et sammenligningsdiagram.

Sammenligningstabel

Grunnlag for sammenligningFeilUnntak
grunn~~POS=TRUNCEn feil skyldes mangel på systemressurser.Et unntak skyldes koden.
GjenopprettingEn feil er uopprettelig.Et unntak kan gjenvinnes.
nøkkelordDet er ingen måte å håndtere en feil ved programkoden.Unntak håndteres ved hjelp av tre søkeord "try", "catch" og "throw".
konsekvenser
Da feilen oppdages, avsluttes programmet unormalt.Som et unntak oppdages, kastes det og fanges av "kaste" og "fange" søkeord tilsvarende.
typerFeil er klassifisert som ukontrollert type.Unntak er klassifisert som merket eller ukontrollert type.
PakkeI Java er feil definert "java.lang.Error" -pakken.I Java defineres en unntak i "java.lang.Exception".
EksempelOutOfMemory, StackOverFlow.Kontrollerte unntak: NoSuchMethod, ClassNotFound.
Ukontrollerte unntak: NullPointer, IndexOutOfBounds.

Definisjon av feil

" Feil " er en underklasse av den innebygde klassen "Throwable". Feil er de kritiske forholdene som oppstår på grunn av mangelen på systemressursene, og det kan ikke håndteres av programkoden. Feil kan ikke gjenopprettes på noen måte fordi de ikke kan opprettes, kastes, fanges eller besvares. Feil skyldes den katastrofale feilen som vanligvis ikke kan håndteres av programmet.

Feil er alltid av ukontrollert type, da kompilatoren ikke har noen kjennskap til dens forekomst. Feil oppstår alltid i run-time-miljøet. Feilen kan forklares ved hjelp av et eksempel, programmet har en feil i stakkoverløp, manglende minnefeil eller en systemkrasjfeil. Denne typen feil skyldes systemet. Koden er ikke ansvarlig for slike feil. Konsekvensen av feilen er at programmet blir avsluttet unormalt.

Definisjon av unntak

"Unntak" er også en underklasse av innebygd klasse "Throwable". Unntak er de eksepsjonelle forholdene som oppstår i et runtime miljø. De fleste ganger unntak er forårsaket på grunn av koden til vårt program. Men unntak kan håndteres av selve programmet, som unntak er gjenvinnbare. Unntak håndteres ved å bruke tre søkeord "try", "catch", "throw". Syntaxen for å skrive et unntak er:

 prøv {// skriv koden din her} Fangst (Unntakstype) {// skriv koden din her} 

I koden ovenfor er koden som er skrevet i forsøksblokken koden du vil overvåke for unntaket. Hvis unntaket oppstår i en prøveblokk, kastes det med "kaste" søkeordet. Unntaket kastet kan bli fanget av "fangst" -blokken av ovennevnte kode. "Unntakstype" er typen unntak som har skjedd.

I enkle ord kan vi si at feilene skjedde på grunn av feil kode kalles unntak. For eksempel, hvis en forespurt klasse ikke er funnet, eller en ønsket metode ikke blir funnet. Disse unntakene skyldes koden i programmet; systemet er ikke ansvarlig for slike unntak. Unntakene er klassifisert som "sjekket" og "ukontrollert". Unchecked unntak er ikke kjent med kompilatoren som de oppstår i løpet av runtime, mens kompilatoren har kunnskap om sjekket unntak som de er kjent for kompilatoren under kompileringstid.

Viktige forskjeller i feil og unntak

  1. Feil oppstår bare når systemressursene er mangelfulle, mens et unntak oppstår hvis en kode har noe problem.
  2. En feil kan aldri gjenopprettes, mens et unntak kan gjenopprettes ved å forberede koden for å håndtere unntaket.
  3. En feil kan aldri håndteres, men et unntak kan håndteres av koden dersom koden kaster et unntak er skrevet i et forsøk og fange blokk.
  4. Hvis en feil har oppstått, blir programmet avsluttet unormalt. På den annen side, hvis unntaket oppstår, vil programmet kaste et unntak, og det håndteres ved hjelp av prøve- og fangstblokken.
  5. Feil er av ukontrollert type dvs. feil er ikke kjent med kompilatorer, mens et unntak er klassifisert som merket og ikke merket.
  6. Feil er definert i java.lang.Error pakke mens et unntak er definert java.lang.Exception.

Konklusjon:

Unntak er resultatene av feil gjort i kodingen av programmet, og feilene er resultatet av feilfunksjonen av systemet

Top