Szintaxis:
A szintaxisa a próbáld elkapni-végre blokkot az alábbiakban adjuk meg.
próbáld ki1. nyilatkozat… N
fogás (ExceptiontType var)
1. nyilatkozat… N
végül
1. nyilatkozat… N
Itt, ha kivétel történik a try blokkon belül, akkor a kivétel a fogási blokkba kerül, és az utolsó blokk itt opcionális. Az utolsó blokk kódja végrehajtja, hogy történik-e kivétel vagy sem.
1. példa: Kivétel kezelése egyetlen elkapási blokkkal
Az alábbi példa bemutatja a kivételkezelés használatát egyetlen fogási blokk segítségével. A fájlnév bemenetnek számít, és létrehoz egy objektumot a BufferedReader-ről egy fájl megnyitásához olvasásra. Ha a fájlnév létezik, akkor a fájl tartalma soronként olvasható és kinyomtatásra kerül. Ha a fájl nem létezik, akkor egy kivétel jön létre, és hibaüzenetet nyomtat.
import java.io.BufferedReader;import java.io.FileReader;
import java.io.IOException;
import java.haszn.Scanner;
nyilvános osztály, kivéve1
public static void main (String [] érvel)
// Hozzon létre egy Szkenner objektumot
Beolvasó = új lapolvasó (System.ban ben);
Rendszer.ki.print ("Írja be a fájlnevet:");
// Karaktersorozat-adatok átvétele a felhasználótól
String FileName = be.következő();
próbáld ki
// Olvasóobjektum létrehozása
BufferedReader olvasó = new BufferedReader (új FileReader (FileName));
// Olvassa el az első sort, ha a fájl létezik
Vonósor = olvasó.readLine ();
míg (vonal != null)
// Nyomtassa ki a sort
Rendszer.ki.println (vonal);
// Olvassa el a következő sort
vonal = olvasó.readLine ();
// Zárja be az olvasó objektumot
olvasó.Bezárás();
// Zárja be a szkenner objektumot
ban ben.Bezárás();
fogás (IOException e)
// Nyomtassa ki a hibaüzenetet
Rendszer.ki.println ("A fájl nem létezik");
Kimenet:
A következő kimenetben, 'Helló.txt ' a nem létező fájlnévként van megadva. Tehát a következő üzenet van kinyomtatva.
Legközelebb, fájl1.txt létező fájlnévként van megadva, és a kimenet megmutatja a fájl tartalmát.
2. példa: Kivétel kezelése többszörös elkapási blokkkal
A következő példa bemutatja, hogyan használhat több elkapási blokkot több kivétel kezelésére. Itt három fogási blokkot deklarálunk. Az első fogási blokk akkor fogja el a számtani hibát, ha bármilyen logikátlan számtani műveletet végeznek. A második fogási bock eléri a tömb tartományon kívüli hibáját, amikor egy tömbindex értékét próbálják megolvasni, amely nem létezik. A harmadik fogási blokk akkor fogja el a numerikus érték hibát, ha bármely karakter vagy karakterlánc értéke tömb értékként van megadva. A kódban egy négy indexű tömböt deklarálnak és inicializálják a felhasználótól vett egész számokkal. A tömb értékeit egy hurok segítségével nyomtatják ki. Osztási művelet a próba blokk végén történik.
import java.haszn.Scanner;nyilvános osztály, kivéve2
public static void main (String [] érvel)
próbáld ki
// Nyújtson be egy numerikus tömböt
int num_arr [] = új int [4];
// Hozzon létre egy szkenner objektumot
Beolvasó = új lapolvasó (System.ban ben);
Rendszer.ki.println ("Írjon be négy számot:");
// Ismételd meg a hurkot négyszer
mert (int i = 0; i < 4; i++)
// Beviteli szám
int n = be.nextInt ();
// Érték hozzáadása a tömbhöz
szám_arr [i] = n;
Rendszer.ki.println ("A tömb értékei:");
// Ismételd meg a hurkot ötször
mert (int i = 0; i < 4; i++)
// Nyomtassa ki a tömb értékeit
Rendszer.ki.println (szám_arr [i]);
// Ossza fel és nyomtassa ki az értéket
int szám = 50/0;
Rendszer.ki.nyomtatás (szám);
// Zárja be a szkenner objektumot
ban ben.Bezárás();
fogás (ArithmeticException e)
Rendszer.ki.println ("A szám nem osztható 0-val");
fogás (ArrayIndexOutOfBoundsException e)
Rendszer.ki.println ("Tömbötlenkedő index értéke történt");
fogás (e kivétel)
Rendszer.ki.println ("A számérték nincs megadva");
Kimenet:
A következő kimenet azt mutatja, hogy a tömbértékek megfelelően vannak beillesztve és kinyomtatva, de a harmadik fogási blokk végrehajtásra kerül, mert 50-et elosztjuk 0-val, ami hiba.
A program második alkalommal kerül végrehajtásra. Amikor egy karakterlánc értéket adunk tömb értékként, akkor a második kivétel jön létre, és a második fogási blokk utasítása végrehajtásra kerül.
3. példa: Kivételkezelés a try-catch-last blokkolással
Az utolsó blokk használata a try-catch blokkkal a következő példában látható. A végső blokk kódja végrehajtódik, ha kivétel történik, vagy nem. A kódban egy egész értéket veszünk el a felhasználótól. Ha a felhasználó bármilyen string értéket ad meg, akkor InputMismatchException
generálja és kinyomtatja az üzenetet a fogási blokkból. A szkennerobjektum bezárásra kerül a végül blokkolja, ha a kivétel generál vagy sem.
import java.haszn.Scanner;import java.haszn.InputMismatchException;
nyilvános osztály, kivéve3
public static void main (String [] érvel)
// Hozzon létre egy szkenner objektumot
Beolvasó = új lapolvasó (System.ban ben);
Rendszer.ki.print ("Írjon be egy számot:");
próbáld ki
// Karaktersorozat-adatok átvétele a felhasználótól
int szám = be.nextInt ();
// Nyomtassa ki a számot
Rendszer.ki.println ("A szám értéke =" + szám);
catch (InputMismatchException e)
// Hibaüzenet nyomtatása
Rendszer.ki.println ("A karakterlánc értéke nem elfogadott.");
végül
// Zárja be a szkenner objektumot
ban ben.Bezárás();
Rendszer.ki.println ("A programból megszűnt");
Kimenet:
A 78 a kód végrehajtása után a következő kimenetben bemeneti értékként szerepel. Tehát, itt nem keletkezik kivétel. Az utolsó blokk üzenetét később kinyomtatják.
Következő, Helló karakterlánc kód végrehajtása után adódik meg bemenetként. Tehát a kivétel generálódik, és a fogási blokk hibaüzenete kinyomtatásra kerül. Az utolsó blokk üzenetét később kinyomtatják.
Következtetés:
A kivétel kezelése minden programozási nyelv nagyon fontos és hasznos tulajdonsága, amely felhasználható a valós hibaüzenet elrejtésére a felhasználó elől, és az ember számára olvasható hibaüzenet megadásával a felhasználó számára a hiba megfelelő megértése. Ez az oktatóanyag segít a felhasználónak megtanulni a kivételkezelés Java-ban történő alkalmazásának különböző módjait, és megfelelőbbé tenni kódjukat.