Kaj je izjema v Javi?
Izjema v Javi je dogodek, ki prekine izvajanje programskih navodil in moti normalen potek izvajanja programa. To je objekt, ki zavije informacije o napaki, ki so se zgodile znotraj metode, in se posredujejo v izvajalni sistem. V Javi se izjeme uporabljajo predvsem za označevanje različnih vrst pogojev napak.
V tej vadnici boste izvedeli-
- Kaj je izjema?
- Zakaj potrebujemo izjemo?
- Kako ravnati z izjemami
- Poskusite Catch Block
- Hierarhija razreda izjem Java
- Java Končno blokiraj
Obstajata dve vrsti napak:
- Prevajanje časovnih napak
- Napake med izvajanjem
Napake v času prevajanja lahko znova razvrstimo v dve vrsti:
- Sintaksne napake
- Semantične napake
Primer sintaksnih napak:
Namesto izjave
int a;
pomotoma ste izjavili, in a;
kateri prevajalnik bo vrgel napako.
Primer: Deklarirali ste spremenljivko
int a;
in po nekaj vrsticah kode spet razglasite celo število kot int a;
. Vse te napake so poudarjene pri prevajanju kode.
Primer napak med izvajanjem
Napaka med izvajanjem se imenuje napaka izjem . Vsak dogodek prekine običajni potek izvajanja programa.
Primer izjem so aritmetična izjema, izjema Nullpointer, izjema z delitvijo nič itd.
Izjeme v Javi so nekaj, kar je zunaj nadzora razvijalcev.
Kliknite tukaj, če video ni dostopen
Zakaj potrebujemo izjemo?
Recimo, da ste kodirali program za dostop do strežnika. Med razvojem kode so se stvari dobro obnesle.
Med dejanskim zagonom strežnik ne deluje. Ko je vaš program poskušal dostopati do njega, se pojavi izjema.
Kako ravnati z izjemami
Do zdaj smo videli, da je izjema zunaj nadzora razvijalca. Toda krivda za napako kode za okoljska vprašanja ni rešitev. Potrebujete trdno programiranje, ki skrbi za izjemne situacije. Takšna koda je znana kot Exception Handler.
V našem primeru bi bilo dobro ravnanje z izjemami, ko strežnik ne deluje, povezati z varnostnim strežnikom.
Če želite to izvesti, vnesite kodo za povezavo s strežnikom (ob običajnih pogojih, če in drugače).
Preverili boste, ali strežnik ne deluje. Če je odgovor da, napišite kodo za povezavo s strežnikom za varnostno kopiranje.
Takšna organizacija kode z uporabo zanke "if" in "else" ni učinkovita, če ima vaša koda več javanskih izjem.
class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}
Poskusite Catch Block
Java zagotavlja vgrajeno izjemno upravljanje.
- Običajna koda gre v blok TRY .
- Koda za ravnanje z izjemami gre v blok CATCH
V našem primeru bo blok TRY vseboval kodo za povezavo s strežnikom. Blok CATCH bo vseboval kodo za povezavo z varnostnim strežnikom.
V primeru, da strežnik deluje, bo koda v bloku CATCH prezrta. V primeru, da strežnik ne deluje, se sproži izjema in izvede se koda v ulovnem bloku.
Torej, tako je v Javi obravnavana izjema.
Sintaksa za uporabo poskusi in ulovi
try{statement(s)}catch (exceptiontype name){statement(s)}
Primer
Korak 1) Kopirajte naslednjo kodo v urejevalnik
class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}
Korak 2) Shranite datoteko in prevedite kodo. Zaženite program z ukazom java JavaException
Korak 3) Aritmetična izjema - delitev z ničlo je prikazana kot spodaj za vrstico # 5 in vrstica # 6 se nikoli ne izvede
Korak 4) Zdaj pa poglejmo, kako nam bo poskus in ulov pomagal obvladati to izjemo. Izjemo, ki povzroča vrstico kode, bomo postavili v poskusni blok, ki mu sledi blok catch . Kopirajte naslednjo kodo v urejevalnik.
class JavaException {public static void main(String args[]) {int d = 0;int n = 20;try {int fraction = n / d;System.out.println("This line will not be Executed");} catch (ArithmeticException e) {System.out.println("In the catch Block due to Exception = " + e);}System.out.println("End Of Main");}}
Korak 5) Shranite, prevedite in zaženite kodo. Dobili boste naslednji izhod
Kot opažate, se obravnava izjema in izvrši se tudi zadnja vrstica kode. Upoštevajte tudi, da vrstica št. 7 ne bo izvedena, ker takoj, ko se poviša izjema, tok nadzora skoči na ulovni blok.
Opomba: Objekt AritmeticException "e" vsebuje informacije o izjemi, ki se je zgodila, kar je lahko koristno pri izvedbi obnovitvenih ukrepov.
Hierarhija razreda izjem Java
Po izvedbi enega stavka catch se drugi zaobidejo in izvajanje se nadaljuje po bloku try / catch. Vgnezdeni bloki catch sledijo hierarhiji izjem.- Vsi razredi izjem v Javi razširjajo razred 'Throwable'. Throwable ima dva podrazreda, napaka in izjema
- Razred Error določa izjemo ali težave, za katere naš program v običajnih okoliščinah ne bo prišel, na primer napaka pomnilnika, napaka strojne opreme, napaka JVM itd.
- Razred Exception predstavlja izjeme, ki jih lahko obravnava naš program, in naš program je mogoče obnoviti iz te izjeme s pomočjo bloka try and catch
- Izjema med izvajanjem je podrazred razreda izjem. Izjema tega tipa predstavlja izjemo, ki se pojavi v času izvajanja in ki ji ni mogoče slediti v času prevajanja. Odličen primer istega je deljenje z nič izjemo ali izjema ničelnega kazalca itd
- IO izjema se ustvari med vhodnimi in izhodnimi operacijami
- Prekinjene izjeme v Javi se ustvarijo med večkratnim navojem.
Korak 1) Kopirajte naslednjo kodo v urejevalnik.
class JavaException {public static void main(String args[]) {try {int d = 1;int n = 20;int fraction = n / d;int g[] = {1};g[20] = 100;}/*catch(Exception e){System.out.println("In the catch block due to Exception = "+e);}*/catch (ArithmeticException e) {System.out.println("In the catch block due to Exception = " + e);} catch (ArrayIndexOutOfBoundsException e) {System.out.println("In the catch block due to Exception = " + e);}System.out.println("End Of Main");}}
Korak 2) Shranite datoteko in prevedite kodo. Zaženite program z ukazom java JavaException .
Korak 3) Ustvari se ArrayIndexOutOfBoundsException. Spremenite vrednost int d na 0. Shranite, prevedite in zaženite kodo.
Korak 4 ) Ustvariti je treba ArithmeticException.
Korak 5) Prekličite vrstico 10 do vrstice 12. Shranite, prevedite in zaženite kodo.
6. korak) Napaka pri prevajanju? To je zato, ker je izjema osnovni razred izjeme ArithmeticException. Vsako izjemo, ki jo sproži ArithmeticException, lahko obravnava tudi razred Exception.Tako blok catch ArithmeticException nikoli ne bo mogel biti izveden, zaradi česar je odveč. Zato napaka pri sestavljanju.
Java Končno blokiraj
Končni blok se izvede ne glede na izjemo, ki je bila sprožena v poskusnem bloku. To je opcija za uporabo s try blok.
try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}
V primeru, da se v bloku try sproži izjema, se blok nazadnje izvede po izvedbi bloka catch.
Primer
Korak 1) Kopirajte naslednjo kodo v urejevalnik.
class JavaException {public static void main(String args[]){try{int d = 0;int n =20;int fraction = n/d;}catch(ArithmeticException e){System.out.println("In the catch block due to Exception = "+e);}finally{System.out.println("Inside the finally block");}}}
Korak 2) Shranite, prevedite in zaženite kodo.
Korak 3) Pričakovani izhod. Končno se blok izvrši, čeprav je postavljena izjema.
Korak 4) Spremenite vrednost spremenljivke d = 1. Shranite, prevedite in zaženite kodo in opazujte izhod. Dno obrazca
Povzetek :
- Izjema je napaka z vožnjo na čas, ki prekine normalen potek programa execution.Disruption med izvajanjem programa se imenuje kot napake ali izjeme.
- Napake so razvrščene v dve kategoriji
- Časovne napake prevajanja - Sintaksne napake, Semantične napake
- Napake med izvajanjem - izjema
- Robusten program naj obravnava vse izjeme in nadaljuje z normalnim tokom izvajanjem programa. Java ponuja vgrajeno izjemno metodo upravljanja
- Exception Handler je niz kode, ki obravnava izjemo . Izjeme lahko v Javi obdelate s funkcijo try & catch.
- Poskusi blokirati : Običajna koda se nadaljuje na tem bloku.
- Blok ulova : Če je v običajni kodi napaka, bo šel v ta blok