Welcome to Our Website

Ellenőrzött és nem ellenőrzött kivételek a java példákkal

kétféle kivétel létezik: ellenőrzött kivétel, nem ellenőrzött kivétel. Ebben az útmutatóban megvitatjuk őket. A fő különbség az ellenőrzött és a nem ellenőrzött kivétel között az, hogy az ellenőrzött kivételeket fordításkor ellenőrzik, míg a nem ellenőrzött kivételeket futásidőben ellenőrzik.

mik az ellenőrzött kivételek?

Az ellenőrzött kivételeket fordításkor ellenőrzik., Ez azt jelenti, hogy ha egy módszer ellenőrzött kivételt dob, akkor a kivételt a try-catch blokk segítségével kell kezelnie, vagy a kivételt a dobók kulcsszóval kell deklarálnia, különben a program összeállítási hibát ad.

lehetővé teszi, hogy megértsük ezt a segítségével egy példa:

ellenőrzött kivétel példa

ebben a példában olvasunk a fájl myfile.txt és megjeleníti annak tartalmát a képernyőn. Ebben a programban három hely van, ahol ellenőrzött kivételt dobnak az alábbi megjegyzésekben említettek szerint., A fájl elérési útjának és nevének megadására használt FileInputStream FileNotFoundException. A fájl tartalmát olvasó olvasási() metódus IOException és a fájl bemeneti adatfolyamát lezáró close() metódus is dob IOException.

kimenet:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

miért ez a fordítási hiba? Amint azt az elején említettem, hogy az ellenőrzött kivételeket a fordítási idő alatt ellenőrzik. Mivel nem kezeltük/deklaráltuk a kivételeket, programunk megadta az összeállítási hibát.
Hogyan lehet megoldani a hibát?, A hiba elkerülésének két módja van. Mindkét utat egyenként fogjuk látni.

1. módszer: állapítsa meg a kivételt dob kulcsszóval.
mint tudjuk, hogy mind a három előfordulását ellenőrzött kivételek belül fő() módszer, így az egyik módja annak, hogy elkerüljék a fordítási hiba: állapítsa meg a kivételt a módszer segítségével dob kulcsszó. Lehet, hogy úgy gondolja, hogy a kód dobott FileNotFoundException IOException mindkét akkor miért nyilvánítjuk a IOException egyedül. Ennek oka az, hogy az IOException a FileNotFoundException szülőosztálya, így alapértelmezés szerint lefedi ezt., Ha azt szeretnénk, akkor állapítsa meg őket, mint ez public static void main(String args) throws IOException, FileNotFoundException.

kimenet:
a fájl tartalma megjelenik a képernyőn.

2. módszer: kezelje őket try-catch blokkokkal.
a fent használt megközelítés egyáltalán nem jó. Ez nem a legjobb kivétel kezelési gyakorlat. Minden kivételtípushoz értelmes üzenetet kell adnia, hogy valaki könnyen megértse a hibát. A kódnak így kell lennie:

Ez a kód jól fog futni, és megjeleníti a fájl tartalmát.,

itt van néhány más ellenőrzött kivétel –

  • SQLException
  • IOException

  • ClassNotFoundException
  • InvocationTargetException

mik a nem ellenőrzött kivételek?

a nem ellenőrzött kivételeket a fordításkor nem ellenőrzik. Ez azt jelenti, hogy ha a program nem ellenőrzött kivételt dob, és még akkor is, ha nem kezelte/deklarálta ezt a kivételt, a program nem ad összeállítási hibát. Legtöbbször ezek a kivételek a felhasználó által a felhasználói program interakciója során megadott rossz adatok miatt következnek be., A programozó feladata, hogy előre megítélje a feltételeket, ami ilyen kivételeket okozhat, és megfelelően kezelje azokat. Minden nem ellenőrzött kivétel a RuntimeException osztály közvetlen alosztályai.

lehetővé teszi, hogy megértsük ezt egy példa:

Unchecked Exception Example

ha lefordítani ezt a kódot, akkor lefordítani sikeresen azonban, ha futtatja, akkor dobja ArithmeticException. Ez egyértelműen azt mutatja, hogy a nem ellenőrzött kivételeket nem ellenőrzik fordításkor, futásidőben fordulnak elő. Lássuk egy másik példát.,

Ez a kód is lefordítani sikeresen, mivel ArrayIndexOutOfBoundsException is egy ellenőrizetlen kivétel.
Megjegyzés: Ez nem jelenti azt, hogy a fordító nem ellenőrzi ezeket a kivételeket, ezért nem szabad kezelni őket. Valójában jobban kellene kezelnünk őket. Például a fenti példában kivételnek kell lennie a felhasználó számára, hogy olyan értéket próbál megjeleníteni, amely nem létezik a tömbben, hogy a felhasználó képes legyen kijavítani a problémát.,

Output:

The specified index does not exist in array. Please correct the error.

Here are the few unchecked exception classes:

  • NullPointerException
  • ArrayIndexOutOfBoundsException
  • ArithmeticException
  • IllegalArgumentException
  • NumberFormatException

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük