Hva er forskjellen mellom feil og unntak i Java

Hva er forskjellen mellom feil og unntak i Java
Mens programmering i Java, kan det være situasjoner der utvikleren kommer over forskjellige begrensninger. Disse flaskehalsene kan være i form av "feil”Eller“unntak”. De førstnevnte stopper kodefunksjonalitetene, og avstår dermed programmereren for å gå videre med koden. Unntakene kan imidlertid unngås for å spare tid og problemfri.

Denne artikkelen vil diskutere forskjellene mellom Java -feil og unntak.

Hva er forskjellen mellom feil og unntak i Java?

Feil”I Java tilsvarer de kritiske sakene som ikke kan takles av koden. “Unntak”I det andre tilfellet kan det oppdages og serveres i koden for å sikre strømlinjeforming av koden:

Feil Unntak
Feil kan ikke gjenopprettes eller håndteres. Unntakene kan håndteres via "Prøv ... fangst”Blokk.
Feil er ikke kjent av kompilatoren. Unntak kan eller ikke kan identifiseres av kompilatoren.
Feil kan være syntaks eller logisk. Disse kan ikke sjekkes eller sjekkes.

Demonstrasjon av "Syntaksfeil"

For det første, la oss oversikt for forekomsten av "Syntaks”Feil:

int a = 2
System.ute.println (a);

I denne koden, bare initialiser heltallet uten å spesifisere semi-kolon ";”Og vis det.

Produksjon

Den diskuterte koden vil resultere i logging av den viste “syntaksfeil”På grunn av en manglende semikolon.

Løsning

Som observert, ved plassering av “;”, Feilen forsvinner.

Demonstrasjon av "logisk feil"

La oss nå diskutere utseendet til "logisk”Feil:

Klasseforeldre
public void display ()
System.ute.Println ("Linuxhint!");

Klassebarn utvider foreldre
public void display ()
vise();
System.ute.Println ("Java -programmering!");

offentlig klasse Errordemo
public static void main (String args [])
Barn obj = nytt barn ();
obj.vise();

I dette kodebiten, bruk trinnene under leverte:

  • Opprett en foreldreklasse som heter “Foreldre”Og akkumulere funksjonen”vise()”I den, viser den medfølgende meldingen.
  • I neste trinn, lag en barneklasse som heter “Barn”Arver foreldreklassen via“strekker”Nøkkelord.
  • Innenfor denne klassen, overstyrer funksjonen som er identisk med foreldreklassen for å få tilgang til funksjonalitetene.
  • Til slutt, i "hoved-”, Lag et objekt i barneklassen og påkalle den overstyrte funksjonen som vil vise“feil”Siden ingen referanser er passert.

Produksjon

I denne utgangen kan det sees at den uttalte begrensningen er vist. “StackOverflow”Feil er vanligvis forårsaket av uendelig rekursjon.

Løsning

I dette utfallet kan det antydes at ved å knytte til "super”Søkeord, forvirringen mellom identisk barn og foreldreklassefunksjon elimineres, og derfor forsvinner feilen.

Demonstrasjon av "unntak"

La oss nå diskutere følgende eksempel som angir makten og håndtert “unntak”:

prøv
int a = 2;
int b = a/0;
System.ute.println (b);

fangst (aritmeticexception e)
System.ute.println (e.getMessage ());

I denne kodeblokken:

  • Først, spesifiser "prøve”Blokk. I denne blokken returnerer du inndelingen av de initialiserte heltallene slik at "evighet”Er returnert.
  • Denne handlingen resulterer i å returnere et unntak.
  • For å håndtere dette unntaket, imøtekomme det sannsynlige unntaket i “å fange”Blokk.
  • Innenfor denne blokken, viser unntaksmeldingen ved å bruke "GetMessage ()”Metode.

Produksjon

Fra denne utgangen kan det analyseres at unntaket blir håndtert på riktig måte.

Konklusjon

Feil”I Java kan ikke håndteres eller løses med koden, mens"Unntak”Kan oppdages og håndteres for å gjøre koden strømlinjeforme. Feilene blir en flaskehals ved å fortsette funksjonalitetene mens unntakene kan unngås. Denne bloggen diskuterte forskjellene mellom de ansatte feilene og unntakene i Java.