ebben A Java kivételek bemutató, megtanulják, mi az a kivétel, Java, mi az ellenőrzött kivétel, hogy ez más, mint egy ellenőrizetlen kivétel. Megtanulunk néhány bevált gyakorlatot a Java ellenőrzött kivételek körül is.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
mi a kivétel a Java-ban?
” a kivétel egy váratlan esemény, amely egy olyan program végrehajtása során fordul elő, amely megzavarja az utasítások normál áramlását.,”
Java nyelven minden hibát és kivételt dobható osztály képvisel. Ha egy metóduson belül hiba lép fel, a metódus létrehoz egy objektumot (a Throwable
altípusból), majd átadja a futásidejű rendszernek. Az objektum, az úgynevezett kivétel objektum.
kivétel objektum információkat tartalmaz a hiba, beleértve annak típusát, valamint az állam a program, amikor a hiba történt. Kivételobjektum létrehozása, valamint a futásidejű rendszernek való átadása kivétel dobása.
1.1., Kivételkezelés
két lehetőségünk van, amikor egy kivételobjektumot hozunk létre az alkalmazásunkban.
- vagy a
- metóduson belül kezeljük, vagy átadhatjuk a hívó metódusnak, hogy kezelni tudjuk.
Ez nagyon fontos döntés, amelyet a módszer felelősségének meghatározása során kell meghozni. A módszernek egyértelműen jeleznie kell, hogy milyen kivételes forgatókönyveket fog kezelni, és amelyeket nem fog. Ez határozza meg módszer szintaxis segítségével dob záradékot.
a kivétel kezeléséhez meg kell ragadnunk a kivételt a try-catch blokk fogási szakaszában.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., Ők jönnek azonnal az arcodba, ha elkezdi összeállítani a programot. Akkor biztosan figyelmen kívül hagyja őket, és hagyja, hogy adja át a JVM, de ez rossz szokás. Ideális esetben ezeket a kivételeket megfelelő szinten kell kezelnie az alkalmazáson belül, hogy tájékoztassa a felhasználót a hibáról, majd kérje meg, hogy próbálja meg újra/ jöjjön később.
általában az ellenőrzött kivételek olyan hibaforgatókönyveket jelölnek, amelyek kívül esnek a program közvetlen ellenőrzésén. Ezek általában külső erőforrásokkal/hálózati erőforrásokkal kölcsönhatásba lépnek, például adatbázis-problémák, hálózati csatlakozási hibák, hiányzó fájlok stb.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.
public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message – Unhandled exception type FileNotFoundException
.,
ahhoz, hogy a program képes lefordítani, meg kell kezelni ezt a hibát helyzet try-catch
blokk. Az alábbiakban megadott kód összeállítása teljesen finom.
2.3. A nem ellenőrzött kivételek
Java szintén nem jelölőnégyzeteket biztosít, amelyek előfordulását a fordító nem ellenőrzi. Ezek életre kelnek / bekerülnek a programba, ha bármilyen hibás kódot végrehajtanak.
egy metódust a fordító nem kényszerít arra, hogy deklarálja a végrehajtás által nem ellenőrzött kivételeket. Általában az ilyen módszerek szinte mindig nem nyilvánítják őket is.,
A nem ellenőrzött kivételek a RuntimeException alosztályai. Példa a nem ellenőrzött kivételekre: ArithmeticException
, ArrayStoreException
, ClassCastException
stb.
Exception
azaz minden ellenőrizetlen kivétel osztályok kellett volna ellenőrizni kivételek implicit módon, de nem.”Unchecked Exception Example
pénztár az alábbi kódot. A fenti kód nem ad fordítási idő hiba., De ha a példa, dob NullPointerException
. NullPointerException nincs bejelölve kivétel Java.
ne feledje, a legnagyobb különbség a között, ellenőrzött, nem ellenőrzött kivételek az ellenőrzött kivételek kénytelenek fordító, valamint annak jelzésére, kivételes körülmények, amelyek az ellenőrzési program (például I/O hiba), míg a nem ellenőrzött kivételek következett a futás során, illetve annak jelzésére, programozási hibák (például egy null pointer).,
Java exception handling best practices
- ellenőrzött kivételek akkor használhatók, ha egy módszer nem tudja megtenni azt, amit a neve mond. például egy preparesystem () nevű metódus, amely előre feltölti a konfigurációs fájlokat, és valamilyen konfigurációt végez velük, deklarálhatja a
FileNotFoundException
dobást, ami azt jelenti, hogy a módszer konfigurációs fájlokat használ a fájlrendszerből. - ellenőrzött kivételek ideális esetben soha nem használható programozási hibák, de feltétlenül kell használni az erőforrás hibák, valamint az áramlásszabályozás ilyen esetekben.,
- csak azokat a kivételeket dobja el, amelyeket egy módszer semmilyen módon nem képes kezelni. Módszer először próbálja kezelni, amint találkozik. Csak akkor dobja el a kivételt, ha a belső módszert nem lehet kezelni.
- a módszer aláírások meghatározásának jó módja a kivételek deklarálása a módszer neve közelében. Ha a módszer neve
openFile
, akkor várhatóan dobjaFileNotFoundException
?. Ha a módszer nevefindProvider
, akkor várhatóan dobjaNoSuchProviderException
.,az ilyen típusú kivételeket is ellenőrizni kell kivételek, mivel arra kényszeríti a hívót, hogy foglalkozzon a módszerek szemantikájával járó problémákkal.
- szabály az, ha az ügyfél ésszerűen elvárható, hogy visszaszerezze a kivétel, hogy ez egy ellenőrzött kivétel. Ha az ügyfél nem tud semmit tenni a kivétel helyreállításáért, akkor jelölje be a nem ellenőrzött kivételt.
a valóságban a legtöbb alkalmazásnak nagyjából minden kivételből vissza kell térnie, beleértve a
NullPointerException
,IllegalArgumentExceptions
és sok más, nem ellenőrzött kivételt., A sikertelen művelet / tranzakció megszakításra kerül, de az alkalmazásnak életben kell maradnia, és készen kell állnia a következő művelet / tranzakció kiszolgálására.az egyetlen alkalom, amikor általában legális az alkalmazás leállítása az indítás során. Például, ha egy konfigurációs fájl hiányzik, és az alkalmazás nem tud semmit értelmes nélküle, akkor legális, hogy állítsa le az alkalmazást.,
következtetés
ebben a bejegyzésben megtanultuk a különbséget az ellenőrzött vs ellenőrizetlen kivételek között a Java-ban, valamint a nem ellenőrzött kivételek, kivételhierarchia kezelése a Java-ban példákkal.
nyugodtan dobja el kérdéseit megjegyzésekben.
Boldog tanulás !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Leave a Reply