Java

Ravnanje z izjemo Java

Ravnanje z izjemo Java
Ko običajni tok izvajanja programa prekine katero koli napako, se to imenuje izjema. To vrsto dogodka je mogoče obvladati z uporabo poskus-ulov-končno blok. Izjema je objekt, ki se uporablja za zajem napake in zagon stavka na podlagi stanja napake, ki se imenuje obravnava izjem. Z obdelavo izjem se obravnavajo predvsem dve vrsti napak. To so sestavljeni čas napake in čas izvajanja napake. The čas izvajanja napake obravnava obdelava izjem. V tej vadnici je razloženo, kako lahko obvladujete izjeme v Javi.

Sintaksa:

Sintaksa poskusite-ulov-končno blok je podan spodaj.

poskusite
izjava 1… N

catch (ExceptiontType var)
izjava 1… N

končno
izjava 1… N

Če se tukaj pojavi izjema v poskusnem bloku, bo izjema vržena na ulovni blok in končni blok je tu neobvezen. Koda končnega bloka izvede, ali pride do izjeme ali ne.

Primer-1: Obravnava izjem z enim blokom ulova

Naslednji primer prikazuje uporabo obravnave izjem z enim blokom ulova. Ime datoteke bo sprejeto kot vhod in bo ustvarilo objekt BufferedReader, da odpre datoteko za branje. Če ime datoteke obstaja, bo vsebina datoteke prebrana po vrsticah in natisnjena. Če datoteka ne obstaja, bo ustvarjena izjema in natisnjeno sporočilo o napaki.

uvoz java.io.BufferedReader;
uvoz java.io.FileReader;
uvoz java.io.IOException;
uvoz java.util.Optični bralnik;
javni razred razen1
public static void main (String [] args)
// Ustvari objekt optičnega bralnika
Scanner in = nov optični bralnik (System.v);
Sistem.ven.print ("Vnesite ime datoteke:");
// Uporabniku vzamemo niz podatkov
StringNameDatoteke = v.Naslednji();
poskusite
// Ustvari bralni objekt
Bralnik BufferedReader = nov BufferedReader (nov FileReader (FileName));
// Preberite prvo vrstico, če datoteka obstaja
Vrstica niza = čitalnik.readLine ();
medtem ko (vrstica != null)
// Natisni vrstico
Sistem.ven.println (vrstica);
// Preberi naslednjo vrstico
vrstica = čitalnik.readLine ();

// Zaprite bralni objekt
bralec.blizu ();
// Zaprite objekt optičnega bralnika
v.blizu ();
ulov (IOException e)
// Natisnite sporočilo o napaki
Sistem.ven.println ("Datoteka ne obstaja");


Izhod:

V naslednjem izhodu,  'zdravo.txt ' je podano kot ime datoteke, ki ne obstaja. Natisnjeno je torej naslednje sporočilo.

Naslednjič, datoteka1.txt je podano kot obstoječe ime datoteke, rezultat pa prikazuje vsebino datoteke.

Primer-2: Obravnava izjem z blokom večkratnega ulova

V naslednjem primeru je prikazano, kako lahko uporabite več blokov catch za obdelavo več izjem. Tu so navedeni trije bloki za ulov. Prvi blok catch bo zajel aritmetično napako, ko je opravljena katera koli nelogična aritmetična operacija. Drugi bock catch bo ujel napako polja izven obsega, ko bo poskusila prebrati vrednost indeksa polja, ki ne obstaja. Tretji blok catch bo zajel napako številske vrednosti, ko je kateri koli znak ali vrednost niza podana kot vrednost matrike. V kodi je matrika s štirimi indeksi deklarirana in inicializirana s celoštevilčnimi vrednostmi, ki bodo uporabniku vzete. Vrednosti matrike se natisnejo z zanko. Delitev se izvede na koncu poskusnega bloka.

uvoz java.util.Optični bralnik;
javni razred razen2
javna statična void main (String [] args)

poskusite

// Razglasimo številčno matriko
int num_arr [] = novo int [4];
// Ustvari objekt optičnega bralnika
Scanner in = nov optični bralnik (System.v);
Sistem.ven.println ("Vnesite štiri številke:");
// Petkrat ponovimo zanko
za (int i = 0; i < 4; i++)
// Številka vnosa
int n = v.nextInt ();
// Dodeli vrednost matriki
število_arr [i] = n;

Sistem.ven.println ("Vrednosti matrike so:");
// Petkrat ponovimo zanko
za (int i = 0; i < 4; i++)
// Natisnemo vrednosti matrike
Sistem.ven.println (num_arr [i]);

// Razdelimo in natisnemo vrednost
int številka = 50/0;
Sistem.ven.tisk (številka);
// Zaprite objekt optičnega bralnika
v.blizu ();

ulov (ArithmeticException e)

Sistem.ven.println ("Nobena številka ni deljiva z 0");

catch (ArrayIndexOutOfBoundsException e)

Sistem.ven.println ("Prišlo je do vrednosti indeksa zunaj polja");

ulov (izjema e)

Sistem.ven.println ("Vrednost števila ni navedena");


Izhod:

Naslednji izhod kaže, da so vrednosti matrike pravilno vstavljene in natisnjene, vendar se izvede tretji ulovni blok, ker je 50 deljeno z 0, kar je napaka.

Program se izvaja drugič. Ko je vrednost niza podana kot vrednost matrike, se generira druga izjema in izvrši stavek drugega bloka catch.

Primer-3: Obravnava izjem z blokom try-catch-final

Uporaba končnega bloka s poskusnim ulovom je prikazana v naslednjem primeru. Koda na koncu bloka se izvede, če pride do izjeme ali ne. V kodi bo uporabniku vzeta celoštevilska vrednost. Če uporabnik poda katero koli vrednost niza, potem InputMismatchException

bo ustvaril in natisnil sporočilo iz bloka catch. Predmet optičnega bralnika bo zaprt v končno blokiraj, če izjema generira ali ne.

uvoz java.util.Optični bralnik;
uvoz java.util.InputMismatchException;
javni razred razen3
public static void main (String [] args)
// Ustvari objekt optičnega bralnika
Scanner in = nov optični bralnik (System.v);
Sistem.ven.print ("Vnesite številko:");
poskusite
// Uporabniku vzamemo niz podatkov
int številka = v.nextInt ();
// Natisni številko
Sistem.ven.println ("Vrednost number =" + število);
catch (InputMismatchException e)
// Natisni sporočilo o napaki
Sistem.ven.println ("Vrednost niza ni sprejeta.");

končno
// Zaprite objekt optičnega bralnika
v.blizu ();
Sistem.ven.println ("Zaključeno iz programa");


Izhod:

78 je podan kot vhodna vrednost v naslednjem izhodu po izvedbi kode. Torej tukaj ni nobene izjeme. Sporočilo iz končnega bloka se natisne pozneje.

Naslednji, zdravo je podan kot vhod po izvedbi kode, ki je niz. Torej se ustvari izjema in natisne sporočilo o napaki iz bloka catch. Sporočilo iz končnega bloka se natisne pozneje.

Zaključek:

Obravnava izjem je zelo pomembna in uporabna lastnost katerega koli programskega jezika, s katero lahko uporabniku skrijemo resnično sporočilo o napaki in uporabniku zagotovimo razumljivo sporočilo o napaki, da napako pravilno razume. Ta vadnica pomaga uporabniku, da se nauči različnih načinov uporabe obvladovanja izjem v Javi in ​​naredi njihovo kodo bolj primerno.

Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...