Hibát fog elkapni a Java Catch Block?
1. Áttekintés
Ebben a rövid cikkben bemutatjuk, hogyan lehet helyesen elkapni a Java hibákat, és elmagyarázzuk, ha ennek nincs értelme.
Részletes információ a Dobhatós Java-ban, kérjük, olvassa el a Java-ban található kivételkezelésről szóló cikkünket.
2. Fogási hibák
Mivel a java.lang.Hiba osztály a Java-ban nem öröklik java.lang.Kivétel, ki kell jelentenünk a Hiba alaposztály - vagy a konkrét Hiba alosztály, amelyet meg akarunk ragadni - a fogási nyilatkozatban, hogy elkapjuk.
Ezért, ha a következő tesztesetet futtatjuk, akkor az sikeres lesz:
@Test (várható = AssertionError.class) public void whenError_thenIsNotCaughtByCatchException () {try {dobj új AssertionError () -t; } catch (e kivétel) {Assert.fail (); // a hibákat nem fogja el a fogási kivétel}}
A következő egység teszt azonban arra számít, hogy a fogási utasítás elkapja a hibát:
@Test public void whenError_thenIsCaughtByCatchError () {try {dobj új AssertionError () -t; } catch (e hiba) {// elkapott! -> teszt-passz}}
Kérjük, vegye figyelembe, hogy a Java virtuális gép hibákat dob, jelezve azokat a súlyos problémákat, amelyekből nem tud helyreállni, például a memória hiánya és a verem túlcsordulása.
Így, nagyon-nagyon jó okunk van a hiba elkapására!
3. Következtetés
Ebben a cikkben láttuk, hogy mikor és hogyan Hibas elkaphatók a Java-ban. A kódpélda a GitHub projektben található.