Isprobajte Catch u Javi: Primjer rukovanja iznimkama

Sadržaj:

Anonim

Što je iznimka u Javi?

Iznimka u Javi je događaj koji prekida izvršavanje programskih uputa i remeti normalan tijek izvršavanja programa. To je objekt koji obavija informacije o pogrešci koje su se dogodile unutar metode i prosljeđuju se sustavu izvođenja. U Javi se iznimke uglavnom koriste za označavanje različitih vrsta stanja pogrešaka.

U ovom vodiču naučit ćete-

  • Što je iznimka?
  • Zašto nam treba iznimka?
  • Kako postupati s iznimkom
  • Pokušajte Catch Block
  • Java hijerarhija klase iznimke
  • Java napokon blokira

Postoje dvije vrste pogrešaka:

  1. Sastavite vremenske pogreške
  2. Pogreške tijekom izvođenja

Pogreške vremena sastavljanja mogu se ponovno klasificirati u dvije vrste:

  • Sintaksne pogreške
  • Semantičke pogreške

Primjer sintaksnih pogrešaka:

Umjesto da se izjasni

int a;pogrešno ste to proglasili in a;za koji će kompajler izbaciti pogrešku.

Primjer: Proglasili ste varijablu

int a;i nakon nekoliko redaka koda opet deklarirate cijeli broj kao int a;. Sve ove pogreške ističu se kada sastavljate kôd.

Primjer pogrešaka u izvođenju

Runtime pogreška naziva se iznimkom . Bilo koji događaj prekida normalan tijek izvršavanja programa.

Primjer za iznimke su aritmetička iznimka, nullpointer iznimka, podijeljena s nulom iznimka itd.

Iznimke u Javi nešto su izvan kontrole programera.

Kliknite ovdje ako videozapis nije dostupan

Zašto nam treba iznimka?

Pretpostavimo da ste kodirali program za pristup poslužitelju. Stvari su funkcionirale u redu dok ste razvijali kod.

Tijekom stvarne produkcije, poslužitelj nije u funkciji. Kada je vaš program pokušao pristupiti njemu, pojavljuje se iznimka.

Kako postupati s iznimkom

Do sada smo vidjeli, iznimka je izvan kontrole programera. Ali okrivljavanje vašeg koda za probleme zaštite okoliša nije rješenje. Treba vam robusno programiranje koje se brine o iznimnim situacijama. Takav je kôd poznat kao rukovatelj iznimkama.

U našem primjeru, dobro postupanje s iznimkama bilo bi, kad poslužitelj ne radi, povezati s rezervnim poslužiteljem.

Da biste to implementirali, unesite svoj kôd za povezivanje s poslužiteljem (koristeći tradicionalne uvjete if i else).

Provjerit ćete je li poslužitelj u kvaru. Ako je odgovor da, napišite kôd za povezivanje s rezervnim poslužiteljem.

Takva organizacija koda, pomoću petlje "if" i "else" nije učinkovita kada vaš kôd ima više Java izuzetaka za obradu.

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

Pokušajte Catch Block

Java pruža ugrađeno izuzetno rukovanje.

  1. Uobičajeni kod prelazi u TRY blok.
  2. Kôd za rukovanje iznimkama ide u blok CATCH

U našem primjeru, blok TRY sadržavat će kôd za povezivanje s poslužiteljem. Blok CATCH sadržavat će kôd za povezivanje s rezervnim poslužiteljem.

U slučaju da poslužitelj radi, kôd u bloku CATCH će se zanemariti. U slučaju da poslužitelj ne radi, pokreće se iznimka i izvršava se kôd u catch bloku.

Dakle, na ovaj se način obrađuje iznimka u Javi.

Sintaksa korištenja try & catch

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

Primjer

Korak 1) Kopirajte sljedeći kod u editor

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) Spremite datoteku i prevedite kôd. Pokrenite program pomoću naredbe, Java JavaException

Korak 3) Aritmetička iznimka - dijeljenje s nulom prikazano je kao dolje za redak 5 i linija 6 se nikada ne izvršava

Korak 4) Pogledajmo sada kako će nam try and catch pomoći da se nosimo s ovom iznimkom. Iznimku koja uzrokuje redak koda stavit ćemo u blok try , a zatim blok catch . Kopirajte sljedeći kod u editor.

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) Spremite, prevedite i pokrenite kôd. Dobit ćete sljedeći izlaz

Kao što primijetite, obrađuje se iznimka, a izvršava se i posljednji redak koda. Također, imajte na umu da se linija 7 neće izvršiti jer čim se podigne iznimka, tok kontrole skače do bloka catch.

Napomena: Objekt AritmeticException "e" sadrži informacije o iznimci koja se dogodila i mogu biti korisne u poduzimanju radnji oporavka.

Java hijerarhija klase iznimke

Nakon izvršavanja jedne naredbe catch, ostale se zaobilaze, a izvršavanje se nastavlja nakon bloka try / catch. Ugniježđeni blokovi catch slijede hijerarhiju izuzetaka.
  • Sve klase iznimki u Javi proširuju klasu 'Dostupno'. Throwable ima dvije potklase, Error i Exception
  • Klasa Error definira iznimku ili probleme za koje naš program ne očekuje da će se pojaviti u normalnim okolnostima, primjerice pogreška memorije, hardverska pogreška, JVM pogreška itd.
  • Klasa Exception predstavlja iznimke s kojima se naš program može nositi, a naš se program može oporaviti iz ove iznimke pomoću bloka try and catch
  • Iznimka tijekom izvođenja je podklasa klase iznimke. Izuzetak ove vrste predstavlja iznimku koja se javlja u vrijeme izvođenja i koja se ne može pratiti u vrijeme sastavljanja. Izvrstan primjer istog je dijeljenje s nulom iznimke ili iznimka null pokazivača itd
  • IO iznimka se generira tijekom ulaznih i izlaznih operacija
  • Prekinute iznimke u Javi generiraju se tijekom višestrukog navoja.
Primjer: Da biste razumjeli ugniježđenje blokova try and catch

Korak 1) Kopirajte sljedeći kod u editor.

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) Spremite datoteku i prevedite kôd. Pokrenite program pomoću naredbe, Java JavaException .

Korak 3) Generira se ArrayIndexOutOfBoundsException. Promijenite vrijednost int d na 0. Spremite, prevedite i pokrenite kôd.

Korak 4 ) ArithmeticException se mora generirati.

Korak 5) Komentirajte redak # 10 u red # 12. Spremite, prevedite i pokrenite kôd.

Korak 6) Pogreška pri kompilaciji? To je zato što je Exception osnovna klasa ArithmeticException Exception. Bilo kojom iznimkom koju pokrene ArithmeticException može se obraditi i klasa Exception. Dakle, blok catch ArithmeticException nikada neće dobiti priliku da se izvrši što ga čini suvišnim. Otuda greška u kompilaciji.

Java napokon blokira

Konačni blok se izvršava bez obzira na izuzetak pokrenut u bloku try. Nije obavezno za upotrebu s blokom try.

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

U slučaju da se u bloku try pokrene iznimka, konačno se blok izvršava nakon izvršavanja bloka catch.

Primjer

Korak 1) Kopirajte sljedeći kod u editor.

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) Spremite, prevedite i pokrenite kôd.

Korak 3) Očekivani izlaz. Napokon se izvršava blok iako se pokreće izuzetak.

Korak 4) Promijenite vrijednost varijable d = 1. Spremite, prevedite i pokrenite kôd i promatrajte izlaz. Dno obrasca

Sažetak :

  • Izuzetak je run-time error koji prekida normalan protok programa execution.Disruption tijekom izvođenja programa naziva kao pogreške ili izuzetka.
  • Pogreške su klasificirane u dvije kategorije
    • Pogreške vremena sastavljanja - Sintaksne pogreške, Semantičke pogreške
    • Pogreške tijekom izvođenja - iznimka
  • Robustan program treba obraditi sve iznimke i nastaviti sa svojim normalan tijek izvođenja programa. Java nudi ugrađenu iznimnu metodu rukovanja
  • Rukovatelj iznimkama skup je koda koji obrađuje iznimku . Iznimke se mogu riješiti na Javi pomoću funkcije try & catch.
  • Pokušajte blokirati : Uobičajeni kod ide na ovaj blok.
  • Blok hvatanja : Ako postoji pogreška u normalnom kodu, tada će ući u ovaj blok