Bude chybou Catch Block v Jave chyba?

1. Prehľad

V tomto krátkom článku si ukážeme, ako správne zachytiť chyby Java, a vysvetlíme, keď to nemá zmysel robiť.

Podrobné informácie o Hoditeľnés v prostredí Java, pozrite si náš článok o spracovaní výnimiek v prostredí Java.

2. Chytanie chýb

Keďže java.lang.Error trieda v Jave nededí z java.lang.Výnimka, musíme vyhlásiť Chyba základná trieda - alebo konkrétna Chyba podtriedu, ktorú by sme chceli zachytiť - vo výpise catch, aby sme ju zachytili.

Preto ak spustíme nasledujúci testovací prípad, prejde:

@Test (očakáva sa = AssertionError.class) public void whenError_thenIsNotCaughtByCatchException () {try {throw new AssertionError (); } catch (Výnimka e) {Assert.fail (); // chyby nezachytáva výnimka catch}}

Nasledujúci test jednotky však očakáva, že príkaz catch zachytí chybu:

@Test public void whenError_thenIsCaughtByCatchError () {try {throw new AssertionError (); } chyta (chyba e) {// chyta! -> testovací preukaz}}

Vezmite prosím na vedomie, že Java Virtual Machine vyhodí chyby, aby naznačil vážne problémy, z ktorých sa nemôže zotaviť, ako napríklad nedostatok pamäte a pretečenia zásobníka.

Teda, musíme mať veľmi, veľmi dobrý dôvod na to, aby sme chytili chybu!

3. Záver

V tomto článku sme videli, kedy a ako Chybas je možné zachytiť v prostredí Java. Príklad kódu nájdete v projekte GitHub.


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