Forskellen mellem fejl og undtagelse i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 6 Kan 2024
Anonim
Основные ошибки при возведении перегородок из газобетона #5
Video.: Основные ошибки при возведении перегородок из газобетона #5

Indhold


"Throwable" fungerer som roden til Java's fejl- og undtagelseshierarki. “Fejl” er en kritisk betingelse, der ikke kan håndteres af programmets kode. "Undtagelse" er den usædvanlige situation, der kan håndteres med programkoden. Den markante forskel mellem fejl og undtagelse er, at en fejl skyldes mangel på systemressourcer og undtagelse skyldes din kode. Lad os undersøge andre forskelle mellem fejl og undtagelse sammen med et sammenligningsdiagram.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningFejlUndtagelse
GrundlæggendeDer opstår en fejl på grund af manglende systemressourcer.En undtagelse skyldes koden.
GenopretningEn fejl kan ikke genvindes.En undtagelse kan inddrives.
nøgleordDer er ingen midler til at håndtere en fejl med programkoden.Undtagelser håndteres ved hjælp af tre nøgleord "prøv", "fang" og "kast".
Konsekvenser
Idet fejlen opdages, afsluttes programmet unormalt.Som en undtagelse detekteres, bliver det kastet og fanget af "throw" og "catch" nøgleordene tilsvarende.
typer Fejl er klassificeret som ikke-markeret type.Undtagelser klassificeres som markeret eller ikke-markeret type.
Pakke I Java defineres fejl "pakken java.lang.Error".I Java defineres en undtagelse i "java.lang.Exception".
EksempelOutOfMemory, StackOverFlow.Kontrollerede undtagelser: NoSuchMethod, ClassNotFound.
Ikke-markerede 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å systemressourcer, og det kan ikke håndteres af programmets kode. Fejl kan ikke gendannes på nogen måde, fordi de ikke kan oprettes, smides, fanges eller besvares. Fejl er forårsaget på grund af den katastrofale fejl, som normalt ikke kan håndteres af dit program.

Fejl er altid af ikke-markeret type, da compiler ikke har nogen viden om dens forekomst. Fejl forekommer altid i runtime-miljøet. Fejlen kan forklares ved hjælp af et eksempel, programmet har en fejl ved stakoverløb, ud af hukommelsesfejl eller en systemfejlfejl, denne type fejl skyldes systemet. Koden er ikke ansvarlig for sådanne fejl. Konsekvensen af ​​forekomsten af ​​fejlen er, at programmet afsluttes unormalt.

Definition af undtagelse

“Undtagelse” er også en underklasse af indbygget klasse “Throwable”. Undtagelser er de ekstraordinære forhold, der forekommer i et runtime-miljø. De fleste af de gange undtagelser skyldes koden til vores program. Men undtagelser kan håndteres af selve programmet, da undtagelser kan gendannes. Undtagelser håndteres ved hjælp af tre nøgleord “prøv”, “fang”, “kast”. Syntaks for at skrive en undtagelse er:


prøv {// skriv din kode her} Fangst (undtagelsestype) {// skriv din kode her}

I ovenstående kode er koden, der er skrevet i prøveblokken, den kode, du vil overvåge for undtagelsen. Hvis undtagelsen forekommer i en prøveblok, kastes den ved hjælp af "kast" -søgeordet. Den undtagelse, der kastes, kan blive fanget af "fangst" -blokken i ovenstående kode. “Undtagelsestype” er typen af ​​den undtagelse, der er sket.

Med enkle ord kan vi sige, at fejlene, der opstod på grund af den forkerte kode, kaldes undtagelser. For eksempel, hvis en anmodet klasse ikke findes, eller en anmodet metode ikke findes. Disse slags undtagelser skyldes koden i programmet; systemet er ikke ansvarligt for denne slags undtagelser. Undtagelserne klassificeres som "markeret" og "ikke markeret". Ikke-markerede undtagelser har ikke kendskab til compiler, da de forekommer under kørsel, mens kompilatoren har viden om kontrollerede undtagelser, som de er kendt for kompilatoren under kompileringstiden.

  1. Fejl opstår kun, når der er mangelfulde systemressourcer, mens en undtagelse er forårsaget, hvis en kode har et eller andet problem.
  2. En fejl kan aldrig gendannes, mens en undtagelse kan gendannes 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, der kaster en undtagelse, er skrevet inde i en try and catch-blok.
  4. Hvis der er opstået en fejl, afsluttes programmet unormalt. På den anden side, hvis undtagelsen finder sted, kaster programmet en undtagelse, og det håndteres ved hjælp af try-og-fangst-blokken.
  5. Fejl er af ikke-markeret type, dvs. fejl er ikke i viden om kompilatorer, hvorimod en undtagelse er klassificeret som kontrolleret og ikke markeret.
  6. Fejl er defineret i java.lang.Error-pakke, mens en undtagelse er defineret java.lang.Exception.

Konklusion:

Undtagelser er resultaterne af fejl, der er foretaget ved kodning af programmet, og fejlene er resultatet af systemets forkert funktion