Manipulácia s výnimkami v Jave je jedným z výkonných mechanizmov na zvládnutie konkrétnych chýb, ktoré sa vyskytujú v sekvencii kódu za behu. Výnimkou nie je nič iné ako chyba runtime, ktorá narúša normálny tok aplikácie.
Normálne sa vyskytuje v časti kódu a ak sa tak stane, vytvorí sa objekt predstavujúci túto výnimku a hodená v spôsobe, ktorý to spôsobil. V dôsledku toho je program alebo aplikácia prerušená, čo spôsobuje abnormálne ukončenie aplikácie, čo sa neodporúča. Z tohto dôvodu sa tieto výnimky musia riešiť a práve tu sa objavuje mechanizmus spracovania výnimiek.
V Jave existujú dva typy výnimiek - Výnimka skontrolovaná a Nekontrolovaná. V tomto článku budeme podrobne diskutovať o tom, čo je začiarknuté a nezaškrtnuté, a kedy ich používať, a nakoniec uvidíme rozdiel medzi týmito dvoma.
Toto sú výnimky, ktoré sú kontrolované a spracované v čase kompilácie. Java definuje niekoľko tried výnimiek v štandardnom balíku java.lang, a najbežnejšie výnimky sú podtriedy štandardného typu RuntimeException.
Výnimky, ktoré sa vyskytujú v oblastiach mimo bezprostrednej kontroly programu, sa nazývajú kontrolované výnimky. Ak je to metóda hádže skontrolovaná výnimka v čase kompilácie, ktorá ju sama nezvláda, potom musí spracovať výnimku v a chytiť zablokovať alebo vyhlásiť výnimku pomocou hádže kľúčové slovo, v opačnom prípade poskytne chybu pri kompilácii. Kompilátor skúma typ objektu výnimky pre každý z nich hodiť a ak sa zobrazí začiarknuté, kompilátor skontroluje zdrojový kód, aby sa ubezpečil, že výnimka je spracovaná v metóde, kde je vyvolaná alebo je deklarovaná, aby sa s ňou mohlo ďalej pracovať.
Všetky výnimky sú popísané v výnimka ktoré sú jej priamymi podtriedami okrem RuntimeException sa nazývajú kontrolované výnimky. Kedy teraz používať kontrolovanú výnimku? Môžete si zvoliť použitie začiarknutej výnimky, keď presne viete, čo robiť, keď výnimka alebo keď je pravdepodobnosť zlyhania väčšia. Medzi príklady kontrolovaných výnimiek v knižnici Java patria IOException, DataAccessException, IllegalAccessException, InterrupttedException, ClassNotFoundException, InvocationTargetException atď..
Toto sú výnimky, ktoré sa nekontrolujú v čase kompilácie. Nezaškrtnutá výnimka predstavuje stav, ktorý vo všeobecnosti odráža chyby v logike programu a ktoré nemožno za behu obnoviť.
Jednoducho povedané, nezaškrtnutá výnimka je výnimka, ktorá nie je zachytená v a Skús chytiť blok. Nemusia byť chytení explicitne. V skutočnosti, keď dôjde k nezaškrtnutej výnimke, Java ju spraví automaticky. Nekontrolované výnimky sa väčšinou vyskytujú kvôli programovacím chybám, napríklad pri prístupe k prvku mimo väzby polí alebo spôsobu prístupu k nulovému objektu. V Jave sú kontrolované všetky výnimky v rámci hádzateľných výnimiek, zatiaľ čo výnimky, ktoré sú priamymi podtriedami Chyba a RuntimeException sú nekontrolované výnimky.
Najlepšia časť nekontrolovanej výnimky je, že neznižuje čitateľnosť kódu a zároveň udržuje klientsky kód v čistote. Medzi príklady nekontrolovaných výnimiek patrí ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException, atď..
Začiarknutá a nekontrolovaná výnimka sú dva typy výnimiek v Jave, ktoré zabezpečujú normálny tok aplikácie. Obidve slúžia na ten istý účel, ktorým je riešenie výnimiek v jazyku Java, a hoci neexistuje žiadny rozdiel vo funkčnosti, neexistuje jediné pravidlo, ktoré určuje, kedy sa má použiť kontrolované a kedy sa má použiť nekontrolovaná výnimka. Kontrolovaná výnimka je výnimka, ktorá sa kontroluje v čase kompilácie, zatiaľ čo nekontrolovaná výnimka je výnimka, ktorá sa nekontroluje v čase kompilácie..
Kontrolovaná výnimka sa vzťahuje na neplatné scenáre, ktoré sa vyskytujú mimo bezprostrednej kontroly nad programom, zatiaľ čo nezaškrtnutá výnimka sa týka chýb v programe alebo chýb v logike programu, ktoré nie je možné obnoviť za behu.
Ak metóda vyvolá začiarknutú výnimku, kompilátor skontroluje, či metóda spracúva túto výnimku pomocou bloku try-catch, alebo špecifikuje výnimku pomocou kľúčového slova vyvolá. Ak metóda neposkytuje manipulačný kód, zobrazí sa chyba kompilácie. Naopak, program skompiluje dobre, pretože kompilátor nekontroluje nekontrolované výnimky v čase kompilácie.
Výnimky, ktoré nie sú odvodené od RunTimeException, sa často riešia, zatiaľ čo výnimky sa vyskytujú za behu. Zaškrtnutá výnimka sa vyskytne, keď je pravdepodobnosť zlyhania príliš vysoká. Na druhú stranu, nekontrolovaná výnimka sa vyskytuje hlavne kvôli programovacím chybám. Všetky výnimky v rámci tried RuntimeException a Error sú nekontrolované výnimky, zatiaľ čo všetky ostatné položky, ktoré sa dajú hádzať, sú kontrolované výnimky..
Niektoré príklady kontrolovaných výnimiek sú IOException, DataAccessException, IllegalAccessException, InterrupttedException, ClassNotFoundException a ďalšie. Príklady nekontrolovaných výnimiek zahŕňajú NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException atď..
Začiarknutá a nekontrolovaná výnimka sú dva typy výnimiek, ktoré existujú v Jave. Aj keď je funkčnosť rovnaká pre obe výnimky, majú spravodlivý podiel na rozdieloch. Hlavný rozdiel medzi kontrolovanými a nekontrolovanými výnimkami spočíva v tom, že prvý z nich je skontrolovaný kompilátorom, zatiaľ čo druhý z nich vynechá oznámenie kompilátora. Výnimky, ktoré sú kontrolované a spracované v čase kompilácie, sú kontrolované výnimky, zatiaľ čo výnimky, ktoré nie sú kontrolované a spracované v čase kompilácie, sú nekontrolované výnimky. Tento článok vysvetľuje, čo je začiarknuté a čo nie je začiarknuté, kedy ich použiť, a vysvetľuje rozdiel medzi nimi.