Jáva

Java kivétel kezelése

Java kivétel kezelése
Amikor a program futtatásának normál folyamata megszakad bármilyen hiba esetén, akkor kivételnek nevezzük. Ez a fajta esemény kezelhető a használatával próbáld meg elkapni végül Blokk. Kivétel egy olyan objektum, amelyet a hiba fogására és az utasítás futtatására használnak a hibafeltétel alapján, amelyet kivételkezelésnek hívnak. Főként két típusú hibát kezel a kivételkezelés. Ezek összeállított idő hibák és futási idő hibák. A futási idő a hibákat a kivételkezelés kezeli. Az oktatóanyag elmagyarázza, hogy miként kezelheti a Java-ban a kivételeket.

Szintaxis:

A szintaxisa a próbáld elkapni-végre blokkot az alábbiakban adjuk meg.

próbáld ki
1. 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.

HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...
Az FPS-számláló megjelenítése a Linux-játékokban
A Linux játék komoly lendületet kapott, amikor a Valve 2012-ben bejelentette a Linux támogatását a Steam kliensnek és játékaiknak. Azóta sok AAA és in...