Išbandykite „Java“: „Išimčių tvarkymo pavyzdys“

Turinys:

Anonim

Kas yra „Java“ išimtis?

„Java“ išimtis yra įvykis, nutraukiantis programos instrukcijų vykdymą ir sutrikdantis įprastą programos vykdymo eigą. Tai objektas, kuris apima klaidos įvykio informaciją, įvykusią metodo viduje, ir ji perduodama vykdymo sistemos sistemai. „Java“ išimtys daugiausia naudojamos nurodant skirtingų tipų klaidų sąlygas.

Šioje pamokoje sužinosite

  • Kas yra išimtis?
  • Kodėl mums reikalinga išimtis?
  • Kaip elgtis su išimtimi
  • Išbandykite „Catch Block“
  • „Java“ išimties klasės hierarchija
  • „Java“ pagaliau užblokuokite

Yra dviejų tipų klaidos:

  1. Sudaryti laiko klaidas
  2. Klaida vykdymo metu

Kompiliavimo laiko klaidas vėl galima suskirstyti į du tipus:

  • Sintaksės klaidos
  • Semantinės klaidos

Sintaksės klaidų pavyzdys:

Užuot deklaravęs

int a;jūs klaidingai paskelbėte, in a;kad kuris kompiliatorius sukels klaidą.

Pavyzdys: Jūs paskelbėte kintamąjį

int a;ir po kai kurių kodo eilučių vėl paskelbiate sveiką skaičių kaip int a;. Visos šios klaidos paryškinamos, kai sudarote kodą.

Vykdymo laiko klaidų pavyzdys

Klaida vykdymo metu vadinama klaida Išimtys . Bet kuris įvykis nutraukia įprastą programos vykdymo eigą.

Išimčių pavyzdžiai yra aritmetinė išimtis, „Nullpointer“ išimtis, „Padalinti iš nulio“ išimtis ir kt.

„Java“ išimtys yra tai, ko kūrėjai negali kontroliuoti.

Spustelėkite čia, jei vaizdo įrašas nepasiekiamas

Kodėl mums reikalinga išimtis?

Tarkime, kad kodavote programą, kad galėtumėte pasiekti serverį. Viskas gerai veikė, kol kūrėte kodą.

Faktinio gamybos metu serveris neveikia. Kai jūsų programa bandė ją pasiekti, iškyla išimtis.

Kaip elgtis su išimtimi

Kol kas matėme, kad išimtis nepriklauso kūrėjui. Tačiau kaltinti savo kodo gedimą aplinkosaugos klausimais nėra sprendimas. Jums reikia patikimo programavimo, kuris pasirūpintų išskirtinėmis situacijomis. Toks kodas yra žinomas kaip išimčių tvarkytojas.

Mūsų pavyzdyje geras išimčių tvarkymas būtų, kai serveris neveikia, prisijunkite prie atsarginės kopijos serverio.

Norėdami tai įgyvendinti, įveskite kodą, kad prisijungtumėte prie serverio (naudojant tradicines „if and else“ sąlygas).

Patikrinsite, ar serveris neveikia. Jei taip, parašykite kodą, kad prisijungtumėte prie atsarginės kopijos serverio.

Toks kodo tvarkymas, naudojant „jei“ ir „kita“ kilpą, nėra veiksmingas, kai jūsų kode yra kelios „Java“ išimtys, kurias reikia tvarkyti.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Išbandykite „Catch Block“

„Java“ suteikia integruotą išskirtinį valdymą.

  1. Įprastas kodas patenka į TRY bloką.
  2. Išimčių tvarkymo kodas patenka į bloką CATCH

Mūsų pavyzdyje TRY bloke bus kodas, skirtas prisijungti prie serverio. „CATCH“ bloke bus kodas, skirtas prisijungti prie atsarginės kopijos serverio.

Jei serveris veikia, kodas CATCH bloke bus ignoruojamas. Jei serveris neveikia, išimtis iškeliama ir kodas blokavimo bloke bus vykdomas.

Taigi, taip išimtis tvarkoma „Java“.

„Try & catch“ naudojimo sintaksė

try{statement(s)}catch (exceptiontype name){statement(s)}

Pavyzdys

1 žingsnis. Nukopijuokite šį kodą į redaktorių

class JavaException {public static void main(String args[]){int d = 0;int n = 20;int fraction = n/d;System.out.println("End Of Main");}}

2 žingsnis) Išsaugokite failą ir sukompiliuokite kodą. Paleiskite programą naudodami komandą „Java JavaException“

3 žingsnis) Aritmetinė išimtis - padalykite iš nulio, kaip parodyta žemiau eilutėje Nr. 5, o eilutė Nr. 6 niekada nevykdoma

4 žingsnis. Dabar pažiūrėkime, kaip bandymas pagauti padės mums spręsti šią išimtį. Išimtį, sukeliančią kodo eilutę, įtrauksime į bandymo bloką, po to - sugavimo bloką. Nukopijuokite šį kodą į redaktorių.

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");}}

5 žingsnis) Išsaugokite, kompiliuokite ir paleiskite kodą. Gausite tokią išvestį

Kaip pastebite, tvarkoma išimtis, taip pat vykdoma paskutinė kodo eilutė. Be to, atkreipkite dėmesį, kad 7 eilutė nebus vykdoma, nes kai tik bus išimtis, valdymo srautas pereis į fiksavimo bloką.

Pastaba: „AritmeticException“ objektas „e“ pateikia informaciją apie įvykusią išimtį, kuri gali būti naudinga atliekant atkūrimo veiksmus.

„Java“ išimties klasės hierarchija

Vykdžius vieną sugavimo teiginį, kiti apeinami, o vykdymas tęsiamas po bandymo / gaudymo bloko. Įterpti sugavimo blokai laikosi išimčių hierarchijos.
  • Visos „Java“ išimties klasės pratęsia „Throwable“ klasę. „Throwable“ turi du poklasius - „Error“ ir „Exception“
  • Klaidų klasė apibrėžia išimtį arba problemas, kurių mūsų programa neturėtų tikėtis įprastomis aplinkybėmis, pvz., Atminties klaida, aparatinės įrangos klaida, JVM klaida ir kt.
  • Išimčių klasė reiškia išimtis, kurias gali tvarkyti mūsų programa, o mūsų programą galima atkurti iš šios išimties naudojant bandymo ir sugavimo bloką
  • „Runtime“ išimtis yra išimčių klasės pogrupis. Šio tipo išimtis yra išimtis, atsirandanti vykdymo metu ir kurios negalima stebėti kompiliavimo metu. Puikus to paties pavyzdys yra padalijimas iš nulinės išimties arba nulinės rodyklės išimtis ir kt
  • IO išimtis sukuriama atliekant įvesties ir išvesties operacijas
  • Pertraukiamos „Java“ išimtys generuojamos kelių gijų metu.
Pavyzdys: suprasti bandymų ir gaudymo blokų lizdą

1 žingsnis. Nukopijuokite šį kodą į redaktorių.

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");}}

2 žingsnis) Išsaugokite failą ir sukompiliuokite kodą. Paleiskite programą naudodami komandą „ Java JavaException“ .

3 žingsnis) Generuojamas „ArrayIndexOutOfBoundsException“. Pakeiskite int d reikšmę į 0. Išsaugokite, kompiliuokite ir paleiskite kodą.

4 žingsnis ) Turi būti sukurta „ArithmeticException“.

5 žingsnis) Nekomentuokite nuo 10 eilutės iki 12 eilutės. Išsaugokite, kompiliuokite ir paleiskite kodą.

6 žingsnis) Kompiliavimo klaida? Taip yra todėl, kad „Išimtis“ yra pagrindinė „ArithmeticException Exception“ klasė. Bet kokią „ArithmeticException“ iškeltą išimtį taip pat gali tvarkyti „Exception“ klasė. Taigi „ArithmeticException“ sugavimo blokas niekada neturės galimybės būti įvykdytas, todėl tai yra nereikalinga. Taigi kompiliavimo klaida.

„Java“ pagaliau užblokuokite

Galutinis blokas vykdomas nepriklausomai nuo bandymo bloke iškeltos išimties . Tai neprivaloma naudoti su bandymo bloku.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

Tuo atveju, kai bandymo bloke iškeliama išimtis, galiausiai blokas vykdomas įvykdžius sugavimo bloką.

Pavyzdys

1 žingsnis. Nukopijuokite šį kodą į redaktorių.

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");}}}

2 žingsnis) Išsaugokite, kompiliuokite ir paleiskite kodą.

3 žingsnis) Laukiama išvestis. Galiausiai blokavimas vykdomas, net jei yra išimtis.

4 žingsnis. Pakeiskite d = 1 kintamojo vertę. Išsaugokite, kompiliuokite ir paleiskite kodą ir stebėkite išvestį. Formos apačia

Santrauka :

  • Išimtis yra paleisti kartą klaida , kuri pertraukia įprastą srautą programos execution.Disruption Per programos vykdymo yra vadinamos klaidos ar išimtis.
  • Klaidos skirstomos į dvi kategorijas
    • Kompiliavimo laiko klaidos - sintaksės klaidos, semantinės klaidos
    • Klaida vykdymo metu - išimtis
  • Patikima programa turėtų spręsti visas išimtis ir tęsti įprastą programos vykdymo eigą. „Java“ suteikia integruotą išskirtinį tvarkymo būdą
  • Išimčių tvarkytuvas yra kodų rinkinys, tvarkantis išimtį . Išimtis galima tvarkyti „Java“ sistemoje naudojant „try & catch“.
  • Išbandykite bloką : šiame bloke eina įprastas kodas.
  • Sugavimo blokas : Jei yra klaida įprastame kode, jis pateks į šį bloką