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ó.


$config[zx-auto] not found$config[zx-overlay] not found