Java >> Java tutorial >  >> Tag >> char

Forskel mellem fejl og undtagelse med sammenligningsdiagram

I Java hører java.lang.Exception og java.lang.Error til klassen java.lang.Throwable. Der er dog nogle grundlæggende forskelle mellem disse to underklasser. Mens fejl er repræsenteret af java.lang.Error-klassen, især dem, der tilskrives applikationens runtime-miljø, betragter klassen java.lang.Exception undtagelserne, der tilskrives selve applikationen. I denne artikel vil vi diskutere definitionerne og funktionerne ved fejl og undtagelser i Java, forskellen mellem undtagelse og fejl osv. Læs videre for at begynde med et sammenlignende diagram, der viser de vigtigste forskelle mellem fejl og undtagelse i Java.

Fejl vs. undtagelse

Differentieringsgrundlag

Fejl

Undtagelse

Skriv

Fejl, der repræsenterer Java, er af typen java.lang.Error.

Undtagelser repræsenteret af Java er af typen java.lang.Exception.

Markeret eller ikke markeret

Fejlene fundet i java er af den umarkerede type.

Undtagelserne fundet i java er af begge typer – ikke markeret og markeret.

Timing

I Java opstår fejlene ved kørsel. Disse fejl kan ikke findes af compileren.

De kontrollerede undtagelser i Java er i compilerens viden. Compileren har dog ikke nogen information om de umarkerede undtagelser, da de finder sted under kørsel.

Mulighed for gendannelse

Det er ikke muligt eller Java-programmer at få retablering fra fejl.

Korrekt håndtering ved hjælp af try-catch-blokke kan hjælpe programmer med at genoprette fra undtagelser i Java.

Forårsaget af

Fejl tilskrives hovedsageligt et programs runtime-miljø.

Selve applikationen er hovedårsagen til undtagelser.

Eksempler

java.lang.OutOfMemoryError og java.lang.StackOverflowError

Afkrydsede undtagelser kan findes som IOException, SQLException osv.
Eksempler på umarkerede undtagelser er ArrayIndexOutOfBoundException, NullPointerException, ClassCastException osv.

Hvad er fejl i JAVA

En fejl i Java er normalt et tegn på et alvorligt problem, der kan være fatalt, og det er bedst for et fornuftigt program ikke at forsøge at fange det samme. Det er en underklasse, der tilhører java.lang.Throwable-klassen i Java. Da fejl vedrører forhold, der er umulige at genoprette via de sædvanlige håndteringsteknikker, tjener unormal afslutning af et program/applikation som den eneste udvej. Fejlene i den umarkerede typekategori findes for det meste under kørsel. De slående tilfælde af fejl i Java er hukommelsesfejl, systemnedbrudsfejl osv.

Hvad er undtagelse i JAVA

Undtagelser i Java er hændelser, der opstår i løbet af programmets udførelse. Når de først finder sted, afbrydes den normale strøm af relaterede instruktioner i form af "array-adgang uden for grænsen" , "divider med nul" , osv. kommer i forgrunden som Undtagelser. En undtagelse i java vedrører et objekt, der indkapsler en fejlhændelse, der finder sted inden for en metode; det indeholder normalt følgende:

1) Oplysninger vedrørende fejlen sammen med dens type

2) Andre tilpassede oplysninger

3) Status for applikationen/programmet på tidspunktet for fejlen, osv.

Undtagelsesobjekterne er i stand til at blive kastet og fanget. De er nyttige til at angive de forskellige typer fejltilstande. Nogle eksempler på undtagelser er FileNotFoundException, SocketTimeoutException, IOException, ArrayIndexOutOfBoundsException, NullPointerException, ArithmeticException osv.

Nøgleforskel mellem undtagelse og fejl

De vigtigste forskelle mellem Undtagelse og Fejl i Java er opregnet nedenfor:

1) Gendannelse fra fejl er umulig i Java-programmer. Den eneste måde at håndtere en fejl på er ved at afslutte udførelsen af ​​applikationen. På den anden side er det muligt for en applikation at genoprette en undtagelse ved at smide undtagelsen tilbage til den, der ringer, eller via try-catch-blokke.

2) Fejl i Java er ude af stand til at blive håndteret ved hjælp af try-catch blokke. Selvom try-catch-blokkene bruges til formålet, vil applikationen ikke gendanne. Omvendt, når først try-catch-blokkene er brugt til at håndtere undtagelser, begynder programmet at flyde normalt, når de sker.

3) Fejlene i Java er udelte og tilhører en enkelt kategori – markeret. På den anden side er der to kategorier af undtagelser i Java - markeret og umarkeret.

4) Da underklasserne til RunTimeException og Fejl i Java er tilbøjelige til at finde sted under runtime, har compileren ikke nogen viden om deres eksistens.
Derfor vil de umarkerede undtagelser og fejl sandsynligvis forblive ubemærket af compileren. På den anden side er oplysningerne om kontrollerede undtagelser til stede med Java-kompileren. Til gengæld tvinger compileren brugeren til at implementere try-catch-blokke på de linjer, der kan give afkrydsede undtagelser.

Konklusion

Fejl og undtagelse er begge underklasser af Class Throwable. Uanset dette bliver en fejl i de fleste tilfælde smidt tilbage af JVM. Det oprettede scenarie er fatalt, da applikationen eller programmet ikke vil være i stand til at genoprette den fejl, f.eks. OutOfMemoryError . En markeret undtagelse kommer til Java-kompilerens kendskab og kan håndteres. Hvis du har yderligere spørgsmål med hensyn til forskellene mellem fejl- og undtagelseshåndtering i Java, så vend tilbage til os i kommentarfeltet nedenfor. Vi vil tidligst give svar på dine bekymringer.


No
Java tag