Anbefalet, 2022

Redaktørens Valg

Forskel mellem fejl og undtagelse i Java

"Throwable" fungere som roten til Java's fejl- og undtagelseshierarki. Fejl er en kritisk tilstand, som ikke kan håndteres af programmets kode. "Undtagelse" er den usædvanlige situation, der kan håndteres af programmets kode. Den væsentlige forskel mellem fejl og undtagelse er, at der opstod en fejl på grund af manglende systemressourcer, og en undtagelse er forårsaget på grund af din kode. Lad os studere andre forskelle mellem fejl og undtagelse sammen med et sammenligningsdiagram.

Sammenligningstabel

Grundlag for sammenligningFejlUndtagelse
GrundlæggendeDer opstår en fejl på grund af manglende systemressourcer.En undtagelse er forårsaget på grund af koden.
GenopretningEn fejl er uoprettelig.En undtagelse er genindvindes.
nøgleordDer er ingen midler til at håndtere en fejl ved hjælp af programkoden.Undtagelser håndteres ved hjælp af tre søgeord "prøve", "fange" og "kaste".
Konsekvenser
Da fejlen opdages, afbrydes programmet unormalt.Som en undtagelse er opdaget, kastes den og fanges af "kaste" og "fange" nøgleord tilsvarende.
typerFejl er klassificeret som ukontrolleret type.Undtagelser klassificeres som tjekket eller ukontrolleret type.
PakkeI Java defineres fejl "java.lang.Error" pakken.I Java defineres undtagelser i "java.lang.Exception".
EksempelOutOfMemory, StackOverFlow.Kontrollerede undtagelser: NoSuchMethod, ClassNotFound.
Ukontrollerede undtagelser: NullPointer, IndexOutOfBounds.

Definition af fejl

" Fejl " er en underklasse af den indbyggede klasse "Throwable". Fejl er de kritiske forhold, der opstår på grund af manglen på systemressourcerne, og det kan ikke håndteres af programmets kode. Fejl kan ikke genoprettes på nogen måde, fordi de ikke kan oprettes, kastes, fanges eller besvares. Fejl skyldes den katastrofale fejl, som normalt ikke kan håndteres af dit program.

Fejl er altid af ukontrolleret type, da kompilatoren ikke har nogen viden om dens forekomst. Der opstår altid fejl under run-time-miljøet. Fejlen kan forklares ved hjælp af et eksempel, programmet har en fejl i stack overløb, manglende hukommelsesfejl eller en systemkrasningsfejl. Denne slags fejl skyldes systemet. Koden er ikke ansvarlig for sådanne fejl. Konsekvensen af ​​fejlen er, at programmet afsluttes unormalt.

Definition af undtagelse

"Undtagelse" er også en underklasse af indbygget klasse "Throwable". Undtagelser er de usædvanlige forhold, der opstår i et runtime miljø. De fleste af de tidspunkter undtagelser skyldes koden i vores program. Men undtagelser kan håndteres af selve programmet, da undtagelser kan genvindes. Undtagelser håndteres ved at bruge tre søgeord "prøve", "fange", "kaste". Syntaxen til at skrive en undtagelse er:

 prøv {// skriv din kode her} Catch (Undtagelsestype) {// skriv din kode her} 

I koden ovenfor er koden skrevet i prøveblokken den kode, som du vil overvåge for undtagelsen. Hvis undtagelsen forekommer i en prøveblok, kastes den med "kaste" søgeordet. Den undtagne kast kan blive fanget af "fangst" -blokken af ​​ovennævnte kode. "Undtagelsestype" er typen af ​​undtagelsen, der er opstået.

I enkle ord kan vi sige, at fejlene opstod på grund af den uhensigtsmæssige kode kaldes undtagelser. For eksempel, hvis en anmodet klasse ikke findes, eller en anmodet metode ikke findes. Disse undtagelser skyldes koden i programmet; systemet er ikke ansvarlig for disse undtagelser. Undtagelserne klassificeres som "kontrolleret" og "ukontrolleret". Ukontrollerede undtagelser har ikke kendskab til kompilatoren, da de opstår under runtime, mens kompilatoren har kendskab til kontrollerede undtagelser, som de kender til compiler under kompileringstid.

Nøgleforskelle i fejl og undtagelse

  1. Fejl opstår kun, når systemressourcerne er mangelfulde, mens der opstår en undtagelse, hvis en kode har noget problem.
  2. En fejl kan aldrig genoprettes, mens en undtagelse kan genfindes ved at forberede koden til at håndtere undtagelsen.
  3. En fejl kan aldrig håndteres, men en undtagelse kan håndteres af koden, hvis koden kaster en undtagelse er skrevet inden for et forsøg og fange blok.
  4. Hvis der er opstået en fejl, afbrydes programmet unormalt. På den anden side, hvis undtagelsen opstår, vil programmet kaste en undtagelse, og det håndteres ved hjælp af prøve- og fangstblokken.
  5. Fejl er af ukontrolleret type, dvs fejl er ikke kendskab til kompilatorer, mens en undtagelse er klassificeret som kontrolleret og ukontrolleret.
  6. Fejl er defineret i java.lang.Error-pakken, mens en undtagelse er defineret java.lang.Exception.

Konklusion:

Undtagelser er resultatet af fejltagelser i kodningen af ​​programmet, og fejlene er resultatet af systemets forkerte funktion

Top