Forskjellen mellom feil og unntak i Java

Forfatter: Laura McKinney
Opprettelsesdato: 2 April 2021
Oppdater Dato: 6 Kan 2024
Anonim
Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]
Video: Рефакторинг: switch vs if-else vs enum vs HashMap [Шаблон "Команда"]

Innhold


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

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningFeilUnntak
grunn~~POS=TRUNCEn feil skyldes mangel på systemressurser.Et unntak skyldes koden.
GjenopprettingEn feil kan ikke gjenvinnes.Et unntak kan utvinnes.
nøkkelordDet er ingen måte å håndtere en feil med programkoden.Unntak håndteres ved hjelp av tre nøkkelord "prøve", "fang" og "kast".
konsekvenser
Når feilen oppdages, vil programmet avsluttes unormalt.Som et unntak blir oppdaget, blir det kastet og fanget av søkeordene "kast" og "fangst" tilsvarende.
typer Feil er klassifisert som ikke merket type.Unntak er klassifisert som merket eller ikke avmerket type.
Pakke I Java er feil definert "java.lang.Error" -pakke.I Java er et unntak definert i "java.lang.Exception".
EksempelOutOfMemory, StackOverFlow.Sjekket unntak: NoSuchMethod, ClassNotFound.
Unchecked Unntak: NullPointer, IndexOutOfBounds.


Definisjon av feil

Feil”Er en underklasse av den innebygde klassen“ Kastbar ”. Feil er de kritiske forholdene som oppstår på grunn av mangelen på systemressurser, 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 er forårsaket på grunn av den katastrofale feilen som vanligvis ikke kan håndteres av programmet ditt.

Feil er alltid av ukontrollert type, da kompilatoren ikke har noen kunnskap om forekomsten. Feil forekommer alltid i kjøretidsmiljøet. Feilen kan forklares ved hjelp av et eksempel, programmet har en feil med stackoverløp, ut av minnefeil eller systemfeilfeil. Denne typen feil skyldes systemet. Koden er ikke ansvarlig for slike feil. Konsekvensen av forekomsten av feilen er at programmet blir avsluttet unormalt.

Definisjon av unntak

"Unntak" er også en underklasse av innebygd klasse "Kastbar". Unntak er de eksepsjonelle forholdene som oppstår i et kjøretidsmiljø. De fleste av gangene unntak er forårsaket på grunn av koden til programmet vårt. Men unntak kan håndteres av selve programmet, ettersom unntak kan utvinnes. Unntak håndteres ved å bruke tre nøkkelord “prøve”, “fangst”, “kast”. Syntaksen for å skrive et unntak er:


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

I koden over er koden som er skrevet i prøveblokken koden du vil overvåke for unntaket. Hvis unntaket forekommer i en prøveblokk, kastes det ved å bruke søkeordet “kast”. Unntaket som kastes kan fanges av "fangst" -blokken i koden ovenfor. "Unntakstype" er typen unntaket som har skjedd.

Med enkle ord kan vi si at feilene som skjedde på grunn av feil kode, kalles unntak. For eksempel, hvis en forespurt klasse ikke blir funnet, eller en ønsket metode ikke blir funnet. Denne typen unntak skyldes koden i programmet; systemet er ikke ansvarlig for denne typen unntak. Unntakene er klassifisert som “avkrysset” og “ikke avmerket”. Unchecked unntak har ikke kunnskap om kompilatoren som de forekommer under kjøretid, mens kompilatoren har kunnskap om sjekket unntak som de er kjent for kompilatoren under kompileringstid.

  1. Feil forekommer bare når systemressursene er mangelfulle, mens et unntak er forårsaket 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 hvis koden som kaster et unntak er skrevet i en prøve og fangstblokk.
  4. Hvis det har oppstått en feil, vil programmet avsluttes unormalt. På den annen side, hvis unntaket inntreffer, vil programmet kaste et unntak, og det håndteres ved hjelp av try-og-fangstblokken.
  5. Feil er av ikke merket type, dvs. feil er ikke kjent med kompilatorer, mens et unntak er klassifisert som sjekket og ikke merket.
  6. Feil er definert i java.lang.Error-pakken, mens et unntak er definert java.lang.Exception.

Konklusjon:

Unntak er resultatene av feil gjort i kodingen av programmet, og feilene er et resultat av at systemet fungerer feil