Próbálja ki a Catch in Java: Kivételkezelés példát

Mi a kivétel a Java-ban?

A Java kivétel egy olyan esemény, amely megszakítja a program utasításainak végrehajtását és megzavarja a program futtatásának normál folyamatát. Ez egy olyan objektum, amely a metódusban bekövetkezett hibaeseményeket becsomagolja, és továbbítja azokat a futásidejű rendszernek. A Java-ban a kivételeket elsősorban a különböző típusú hibaállapotok jelzésére használják.

Ebben az oktatóanyagban megtanulja-

  • Mi az a kivétel?
  • Miért van szükségünk Kivételre?
  • Hogyan kezeljük a kivételeket
  • Próbálja ki a Catch Block-ot
  • Java Exception osztály Hierarchia
  • A Java végül blokkolja

Kétféle hiba létezik:

  1. Időbeli hibák összeállítása
  2. Futásidejű hibák

Az fordítási időbeli hibák ismét két típusba sorolhatók:

  • Szintaxis hibák
  • Szemantikai hibák

Példa szintaktikai hibákra:

Nyilatkozat helyett

int a;tévesen kijelentette, in a;hogy melyik fordító dob hibát.

Példa: Deklarált egy változót

int a;és néhány kódsor után ismét egy egész számot deklarálsz int a;. Mindezek a hibák kiemelésre kerülnek a kód fordításakor.

Futásidejű hibák példa

A futásidejű hibát Exceptions hibának nevezzük . Bármely esemény megszakítja a program futtatásának normál folyamatát.

Példák a kivételekre, számtani kivétel, Nullpointer kivétel, Osztás nullával kivétel stb.

A Java kivételei olyan dolgok, amelyeket a fejlesztők nem tudnak ellenőrizni.

Kattintson ide, ha a videó nem érhető el

Miért van szükségünk Kivételre?

Tegyük fel, hogy programot kódolt a szerver eléréséhez. A dolgok jól működtek, amíg fejlesztetted a kódot.

A tényleges gyártási futtatás során a szerver nem működik. Amikor a program megpróbálta elérni, kivételt jelent.

Hogyan kezeljük a kivételeket

Eddig láthattuk, hogy a kivétel a fejlesztő ellenőrzésén kívül esik. De a kódhiba környezetvédelmi kérdésekben való felróása nem megoldás. Szüksége van egy robusztus programozásra, amely gondoskodik a kivételes helyzetekről. Ez a kód Exception Handler néven ismert .

Példánkban a kivétel kivételes kezelése az lenne, ha a kiszolgáló nem működik, csatlakozzon a biztonsági mentési szerverhez.

Ennek megvalósításához írja be a kódot, hogy csatlakozzon a szerverhez (a hagyományos if and else feltételek használatával).

Ellenőrizni fogja, hogy a szerver nem működik-e. Ha igen, írja be a kódot, hogy csatlakozzon a biztonsági mentési kiszolgálóhoz.

A kód ilyen szervezése, az "if" és "else" ciklusok használata nem hatékony, ha a kódnak több java kivételt is kezel.

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

Próbálja ki a Catch Block-ot

A Java beépített kivételes kezelhetőséget biztosít.

  1. A normál kód egy TRY blokkba kerül.
  2. A kivételkezelő kód a CATCH blokkba kerül

Példánkban a TRY blokk tartalmazza a szerverhez való csatlakozáshoz szükséges kódot. A CATCH blokk tartalmazza a biztonsági mentési kiszolgálóhoz való csatlakozáshoz szükséges kódot.

Abban az esetben, ha a szerver fent van, a CATCH blokk kódját figyelmen kívül hagyják. Abban az esetben, ha a szerver nem működik, kivételt vetnek fel, és a fogási blokkban lévő kód végrehajtásra kerül.

Tehát a Java így kezeli a kivételt.

Szintaxis a try & catch használatához

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

Példa

1. lépés: Másolja a következő kódot egy szerkesztőbe

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. lépés: Mentse a fájlt és fordítsa le a kódot. Futtassa a programot a java JavaException paranccsal

3. lépés: Aritmetikai kivétel - a nullával osztás az alábbiakban látható az 5. sorhoz, és a 6. sort soha nem hajtják végre

4. lépés) Most nézzük meg, hogy a próbálkozás és fogás hogyan segít kezelni ezt a kivételt. A kódsort okozó kivételt egy try blokkba helyezzük , majd egy catch blokkot. Másolja a következő kódot a szerkesztőbe.

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. lépés: Mentse, fordítsa le és futtassa a kódot. A következő kimenetet kapja

Amint észrevette, a kivétel kezelése megtörténik, és az utolsó kódsor is végrehajtásra kerül. Vegye figyelembe azt is, hogy a 7. sor nem kerül végrehajtásra, mert amint egy kivétel felmerül, a vezérlés folyamata a fogási blokkra ugrik.

Megjegyzés: Az "e" AritmeticException objektum információkat tartalmaz a bekövetkezett kivételről, amely hasznos lehet a helyreállítási műveletek végrehajtásához.

Java Exception osztály Hierarchia

Miután az egyik fogási utasítás végrehajtásra kerül, a többit megkerülik, és a végrehajtás a try / catch blokk után folytatódik. A beágyazott fogási blokkok a kivétel hierarchiáját követik.
  • A Java összes kivételosztálya kiterjeszti a 'Throwable' osztályt. A Throwable-nak két alosztálya van, a Error és a Exception
  • A Error osztály meghatározza a kivételeket vagy azokat a problémákat, amelyek a program által normális körülmények között várhatóan nem fordulnak elő, például Memória hiba, Hardver hiba, JVM hiba stb.
  • A Kivétel osztály képviseli azokat a kivételeket, amelyeket a programunk kezelhet, és a programunk ebből a kivételből helyreállítható a try and catch blokk segítségével
  • A futásidejű kivétel a kivétel osztály egyik alosztálya. Az ilyen típusú kivétel kivételt jelent, amely a futási időben fordul elő, és amelyet nem lehet követni a fordítás idején. Kiváló példa erre az osztás nulla kivétellel vagy null mutató kivétel stb
  • Az IO kivétel a bemeneti és kimeneti műveletek során keletkezik
  • Megszakított kivételek a Java-ban, több szálas menet közben keletkeznek.
Példa: A try and catch blokkok fészkelésének megértése

1. lépés: Másolja a következő kódot egy szerkesztőbe.

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. lépés: Mentse a fájlt és fordítsa le a kódot. Futtassa a programot a java JavaException paranccsal .

3. lépés: Egy ArrayIndexOutOfBoundsException jön létre. Változtassa az int d értékét 0-ra. Mentse, fordítsa le és futtassa a kódot.

4. lépés: ArithmeticExceptiont kell létrehozni.

5. lépés: Kommentelje a 10. sort a 12. sorig. Mentse, fordítsa le és futtassa a kódot.

6. lépés) Összeállítási hiba? Ennek oka, hogy a Kivétel az ArithmeticException Exception alaposztálya. Az ArithmeticException által felvetett kivételeket az Exception osztály is kezelheti. Tehát az ArithmeticException fogási blokkja soha nem kap esélyt a végrehajtásra, ami feleslegessé teszi. Ezért a fordítási hiba.

A Java végül blokkolja

Az utolsó blokkot végrehajtják, függetlenül a try blokkban felvetett kivételtől . Opcionális egy próbablokkal együtt használni.

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

Abban az esetben, ha egy kivétel felmerül a try blokkban, végül a blokk végrehajtásra kerül a catch blokk végrehajtása után.

Példa

1. lépés: Másolja a következő kódot egy szerkesztőbe.

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. lépés: Mentse, fordítsa le és futtassa a kódot.

3. lépés) Várható kimenet. Végül a blokk végrehajtásra kerül, annak ellenére, hogy kivételt vetnek fel.

4. lépés: Módosítsa a d = 1 változó értékét. Mentse el, fordítsa le és futtassa a kódot, és figyelje meg a kimenetet. Az űrlap alja

Összegzés :

  • A kivétel egy futásidejű hiba, amely megszakítja a program futtatásának normál folyamatát. A program futtatása közbeni megszakítást hibának vagy kivételnek nevezzük.
  • A hibákat két kategóriába sorolják
    • Fordítási idő hibák - Szintaxis hibák, szemantikai hibák
    • Futásidejű hibák - kivétel
  • Egy robusztus programnak kezelnie kell az összes kivételt, és folytatnia kell a program normál végrehajtását. A Java beépített kivételes kezelési módot kínál
  • A Kivételkezelő egy olyan kódkészlet, amely kezel egy kivételt . A kivételeket a Java-ban a try & catch segítségével kezelhetjük.
  • Próbáld ki a blokkot : A normál kód megy erre a blokkra.
  • Fogási blokk : Ha hiba van a normál kódban, akkor ebbe a blokkba kerül

érdekes cikkek...