Prøv, fange, kaste og til slutt uttalelser i Java | Forklart

Prøv, fange, kaste og til slutt uttalelser i Java | Forklart
På et hvilket som helst programmeringsspråk inkludert Java, er det alltid en mulighet for at en feil oppstår på tidspunktet for kodeutførelse, som et resultat slutter programmet å fungere og kaster en feil. I programmatisk termer blir dette fenomenet referert til som unntak. Java gir løsningen som kan håndtere slike unntak av kjøretid/feil kjent som unntakshåndtering.

På Java kan flere måter vedtas for å håndtere unntakene, i denne oppskrivningen vil vi diskutere følgende måter å håndtere unntaks:

  • Unntakshåndtering ved hjelp av Try-Catch-setninger
  • Unntakshåndtering ved hjelp av Endelig uttalelse
  • Unntakshåndtering ved hjelp av kast nøkkelord

Alle ovennevnte tilnærminger vil bli diskutert i denne oppskrivningen ved hjelp av noen eksempler. Før vi drar mot disse tilnærmingene først må vi forstå hvorfor det er nødvendig å håndtere unntak i Java.

Hvorfor unntakshåndtering i Java

I tilfelle vi står overfor noen feil, stopper programmet normalt utførelsen, men unntakshåndteringen sikrer at den normale strømmen av programmet ikke skal gå i stykker.

La oss vurdere et scenario for dyp forståelse av unntakshåndtering i Java:

Anta at vi har fem uttalelser i et program og unntaket oppstår ved den tredje uttalelsen, så stopper et normalt program utførelsen på det tidspunktet, og de resterende to uttalelsene ville ikke utføre. Imidlertid, hvis vi bruker unntakshåndtering, ville ikke den normale strømmen bli påvirket.e. Unntak vil bare vises for den berørte uttalelsen, og alle andre uttalelser vil utføre vellykket.

Eksempel

La oss vurdere eksemplet nedenfor som ikke vurderte unntakshåndteringsmekanismen. Nå, hva som vil skje hvis det oppstår en feil?

publicClassexceptionHandlingExample
publicStaticVoidmain (String [] args)
int [] arr = 5, 10, 0, 25, 5;
for (inti = 0; i
int num = 50;
System.ute.println ("Resultat:" + num/arr [i]);


I dette programmet har vi en rekke heltall, innenfor sløyfen, spesifiserer vi en tilstand.lengde som representerer iterert til den siste oppføringen av matrisen. Og innenfor løkkenes kropp har vi et tall "50", og det vil bli delt på hver verdi av matrisen:

Fra utgangen er det klart at programmet avsluttes når en feil oppstår og det ikke skriver ut de gjenværende verdiene for matrisen.

For å håndtere slike scenarier, bruker Java -programmererne derfor konseptet med unntakshåndtering, slik at hvis en feil oppstår, i stedet for å avslutte hele programmet, bør det bare kaste unntaket for den berørte uttalelsen.

Unntakshåndtering ved hjelp av prøve-fangst

En av de enkleste og enkleste måtene å takle unntak på er Try-fangst uttalelser som kommer opp som et par. Koden som er spesifisert i prøveblokken vil bli testet for unntak/feil, og hvis et unntak skjer, vil den bli fanget i fangstblokken.

Den grunnleggende syntaksen til prøvekampanlegget vil se slik ut:

prøve

// kode som skal testes for unntak

å fange

// kode for å håndtere unntak

Try -blokken vil alltid bli fulgt av minst en fangstblokk.

Eksempel

La oss utvide det forrige eksemplet litt mer og legge til prøvekampanleggene for å håndtere unntakene.

publicClassexceptionHandlingExample
publicStaticVoidmain (String [] args)
int num = 50;
int [] arr = 5, 10, 0, 25, 5;
for (inti = 0; iprøv
System.ute.println ("Resultat:" + num / arr [i]);
fangst (unntak eks)
System.ute.println ("et unntak forekommer");



Den komplette koden ved siden av sin respektive utgang vises i følgende utdrag:

Denne gangen når det oppstår en feil, viser programmet på det tidspunktet en melding “Et unntak skjer” Og etterpå itererer sløyfen gjennom de gjenværende oppføringene av matrisen.

Unntakshåndtering ved hjelp av Endelig uttalelse

I Java, den endelig Nøkkelord kan brukes med prøvefangst, og det vil alltid utføre uavhengig av om unntakene blir håndtert eller ikke.

Merk: Skriv alltid de viktige utsagnene/koden (som du vil utføre i enhver situasjon) innenfor endelig blokkere.

Eksempel

Kodebiten nedenfor viser hvordan endelig Blokk fungerer i Java:

publicClassexceptionHandlingExample
publicStaticVoidmain (String [] args)
prøve
int nummer1 = 12;
int nummer2 = 0;
System.ute.println (nummer1/nummer2);

fang
System.ute.println ("unntak skjedde");

endelig

System.ute.Println ("Endelig blokkerer");


Den komplette koden og dens respektive utgang vises i følgende skjermbilde:

Som i koden ovenfor, bruker vi det arrayoutofbound unntak, derfor er den ikke i stand til å håndtere et aritmetisk unntak. Fra ovennevnte utdrag er det imidlertid klart at endelig Block utfører uavhengig av konsekvensene (i.e. unntak håndtert eller ikke).

Unntakshåndtering ved hjelp av kast nøkkelord

Kastnøkkelordet kan brukes til å kaste et unntak eksplisitt (i.e. Det lar oss lage et tilpasset unntak). Det kan brukes med hvilken som helst unntakstype som ArrayIndexoutofBoundSexception, Arithmeticexception, og så videre.

Eksempel

I dette eksemplet vil vi ta en verdi på tidspunktet for funksjonsanrop, hvis inngangsverdien er lik 0, vil vi kaste en tilpasset aritmetisk unntak.

publicClassThrowExample
publicVoidDivide (int input)
int -nummer = 100;
if (input == 0)
kastetwarithmeticexception ("\ n du skriver inn 0, kan ikke utføre divisjon");
annet
System.ute.println ("Resultat:" + tall / input);


publicStaticVoidmain (String [] args)
throwExample obj = newThrowExample ();
obj.dele (0);

Det komplette kodebiten sammen med utdataene er gitt i følgende utdrag:

Ovennevnte kodebit viser at passering “0” Som inngang resulterer i tilpassede unntak som autentiserer arbeidet med kaste nøkkelord.

Konklusjon

Java gir flere uttalelser for å håndtere unntak/feil i løpet av kjøretid som prøve, fange, til slutt, kaste. Try-fangst Uttalelser kommer opp som et par, Try -blokken tester koden for unntak/feil hvis et unntak oppstår, vil den bli fanget i fangstblokken. De endelig Nøkkelord kan brukes med prøvefangst, og det vil alltid utføre uavhengig av om unntakene håndteres eller ikke mens kaste Nøkkelord brukes til å kaste et unntak eksplisitt. Denne oppskrivningen gir en detaljert forståelse av hvordan du skal takle unntak i Java.