Java

Java undtagelse håndtering

Java undtagelse håndtering
Når den normale strøm af programudførelsen afbryder for enhver fejl, kaldes det en undtagelse. Denne type begivenhed kan håndteres ved hjælp af en prøve-fangst-endelig blok. En undtagelse er et objekt, der bruges til at fange fejlen og køre sætningen baseret på den fejltilstand, der kaldes undtagelseshåndtering. Hovedsageligt to typer fejl håndteres ved undtagelseshåndtering. Disse er samlet tid fejl og kørselstid fejl. Det kørselstid fejl håndteres ved undtagelseshåndtering. Hvordan du kan håndtere undtagelser i Java forklares i denne vejledning.

Syntaks:

Syntaksen for prøve-fangst-endelig blok er angivet nedenfor.

prøve
erklæring 1… N

fangst (ExceptiontType var)
erklæring 1… N

langt om længe
erklæring 1… N

Her, hvis der forekommer en undtagelse inden for prøveblokken, kastes undtagelsen til fangstblokken, og den endelige blok er valgfri her. Koden for den endelige blok udfører, om der forekommer en undtagelse eller ej.

Eksempel 1: Undtagelseshåndtering med en enkelt fangstblok

Følgende eksempel viser brugen af ​​undtagelseshåndtering ved hjælp af en enkelt fangstblok. Et filnavn tages som input og opretter et objekt af BufferedReader for at åbne en fil til læsning. Hvis filnavnet findes, læses indholdet af filen linje for linje og udskrives. Hvis filen ikke findes, genereres en undtagelse, og der udskrives en fejlmeddelelse.

importer java.io.BufferedReader;
importer java.io.FileReader;
importer java.io.IOUndtagelse;
importer java.util.Scanner;
offentlig klasse undtagen1
offentlig statisk ugyldig hoved (String [] args)
// Opret et scannerobjekt
Scanner ind = ny scanner (system.i);
System.ud.print ("Indtast filnavnet:");
// Tag strengdata fra brugeren
String FileName = in.Næste();
prøve
// Opret et læserobjekt
BufferedReader reader = ny BufferedReader (ny FileReader (FileName));
// Læs den første linje, hvis filen findes
String line = læser.readLine ();
while (linje != null)
// Udskriv linjen
System.ud.println (linje);
// Læs den næste linje
linje = læser.readLine ();

// Luk læseren
læser.tæt();
// Luk scannerobjektet
i.tæt();
fangst (IOException e)
// Udskriv fejlmeddelelsen
System.ud.println ("Filen findes ikke");


Produktion:

I følgende output,  'Hej.txt ' angives som det filnavn, der ikke findes. Så følgende meddelelse udskrives.

Næste gang, fil1.txt gives som det filnavn, der findes, og output viser indholdet af filen.

Eksempel 2: Undtagelseshåndtering med flere fangstblokke

Hvordan du kan bruge flere fangstblokke til at håndtere flere undtagelser vises i det følgende eksempel. Her erklæres tre fangstblokke. Den første fangstblok fanger den aritmetiske fejl, når enhver ulogisk aritmetisk operation udføres. Den anden fangstbock fanger arrayets fejl uden for rækkevidde, når en array-indeksværdi vil blive forsøgt at læse, der ikke findes. Den tredje fangstblok fanger den numeriske værdifejl, når et hvilket som helst tegn eller en strengværdi er angivet som en matrixværdi. I koden erklæres en matrix med fire indekser og initialiseres med de heltalsværdier, der vil blive taget fra brugeren. Arrayværdierne udskrives ved hjælp af en løkke. En opdelingsoperation udføres i slutningen af ​​prøveblokken.

importer java.util.Scanner;
offentlig klasse undtagen2
offentlig statisk ugyldig hoved (String [] args)

prøve

// Erklær et numerisk array
int num_arr [] = ny int [4];
// Opret et scannerobjekt
Scanner ind = ny scanner (system.i);
System.ud.println ("Indtast fire tal:");
// Iterer sløjfen fire gange
for (int i = 0; i < 4; i++)
// Indgangsnummer
int n = in.nextInt ();
// Tildel værdi til array
num_arr [i] = n;

System.ud.println ("Matrixværdier er:");
// Iterer sløjfen fem gange
for (int i = 0; i < 4; i++)
// Udskriv matrixværdierne
System.ud.println (num_arr [i]);

// Opdel og udskriv værdien
int num = 50/0;
System.ud.print (num);
// Luk scannerobjektet
i.tæt();

fange (ArithmeticException e)

System.ud.println ("Intet tal kan deles med 0");

fangst (ArrayIndexOutOfBoundsException e)

System.ud.println ("Out of array index value occurred");

fangst (undtagelse e)

System.ud.println ("Talværdien angives ikke");


Produktion:

Følgende output viser, at matrixværdier indsættes og udskrives korrekt, men den tredje fangstblok udføres, fordi 50 divideres med 0, hvilket er en fejl.

Programmet udføres for anden gang. Når en strengværdi gives som en matrixværdi, genereres den anden undtagelse, og udsagnet om den anden fangstblok udføres.

Eksempel 3: Undtagelseshåndtering med prøve-fang-endelig blok

Brugen af ​​endelig blokering med try-catch-blok er vist i det følgende eksempel. Koden for endelig blok udføres, hvis der forekommer en undtagelse eller ej. I koden tages et heltal fra brugeren. Hvis brugeren angiver en strengværdi, så InputMismatchException

genererer og udskriver beskeden fra fangstblokken. Scannerobjektet lukkes i langt om længe blokere, hvis undtagelsen genererer eller ej.

importer java.util.Scanner;
importer java.util.InputMismatchException;
offentlig klasse undtagen3
offentlig statisk ugyldig hoved (String [] args)
// Opret et scannerobjekt
Scanner ind = ny scanner (system.i);
System.ud.print ("Indtast et nummer:");
prøve
// Tag strengdata fra brugeren
int antal = i.nextInt ();
// Udskriv nummeret
System.ud.println ("Værdien af ​​nummer =" + nummer);
fangst (InputMismatchException e)
// Udskriv fejlmeddelelse
System.ud.println ("Strengværdi accepteres ikke.");

langt om længe
// Luk scannerobjektet
i.tæt();
System.ud.println ("Afsluttet fra programmet");


Produktion:

78 er angivet som inputværdi i det følgende output efter udførelse af koden. Så der genereres ingen undtagelse her. Meddelelsen fra den endelige blok udskrives senere.

Næste, Hej gives som input efter udførelse af den kode, der er en streng. Så genereres undtagelsen, og fejlmeddelelsen fra fangstblokken udskrives. Meddelelsen fra den endelige blok udskrives senere.

Konklusion:

Undtagelseshåndtering er en meget vigtig og nyttig funktion i ethvert programmeringssprog, der kan bruges til at skjule den virkelige fejlmeddelelse fra brugeren og give den menneskelæsbare fejlmeddelelse, så brugeren kan forstå fejlen korrekt. Denne tutorial hjælper brugeren med at lære forskellige måder at anvende undtagelseshåndtering på Java på og gøre deres kode mere passende.

Mus Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
Føj musbevægelser til Windows 10 ved hjælp af disse gratis værktøjer
I de senere år har computere og operativsystemer udviklet sig meget. Der var et tidspunkt, hvor brugerne skulle bruge kommandoer til at navigere genne...
Mus Styr og administrer musebevægelse mellem flere skærme i Windows 10
Styr og administrer musebevægelse mellem flere skærme i Windows 10
Dual Display Mouse Manager lader dig kontrollere og konfigurere musebevægelse mellem flere skærme ved at bremse dens bevægelser nær grænsen. Windows 1...
Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...