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.