Kontrolovaná a nekontrolovaná výjimka

Anonim

Manipulace s výjimkami v jazyce Java je jedním z nejdůležitějších mechanismů pro zvládání specifických chyb, které vznikají v sekvenci kódu za běhu. Výjimka není nic jiného než běhová chyba, která narušuje normální tok aplikace.

Obvykle se vyskytuje v kus kódu a když to udělá, objekt vytvořený touto výjimkou je vytvořen a hodil v metodě, která ji způsobila. V důsledku toho je program nebo aplikace přerušena, což způsobuje ukončení aplikace abnormálně, což se nedoporučuje. To je důvod, proč je třeba tyto výjimky zacházet, a právě zde se objevuje mechanismus zpracování výjimek.

Existují dva typy výjimek, které existují v programu Java - Kontrolovaná a nekontrolovaná výjimka. V tomto článku budeme podrobně diskutovat o tom, co je zaškrtnuto a nekontrolováno, a kdy je použít, a nakonec uvidíme rozdíl mezi těmito dvěma.

Co je kontrolováno výjimkou v jazyce Java?

Jedná se o výjimky, které jsou kontrolovány a zpracovány v době kompilace. Java definuje několik tříd výjimek uvnitř standardního balíčku java.langa nejběžnější výjimky jsou podtříd standardního typu RuntimeException.

Výjimky, které se vyskytují v oblastech mimo okamžitou kontrolu programu, jsou známy jako kontrolované výjimky. Pokud se jedná o metodu hody ověřenou výjimku v době kompilace, která ji nemůže zvládnout sama, musí zpracovat výjimku v a úlovek {} blokovat nebo deklarovat výjimku pomocí hody klíčové slovo, jinak to udělá chyba při kompilaci. Kompilátor zkoumá typ objektu výjimky pro každý z nich hod a pokud je zobrazen zaškrtnuto, kompilátor zkontroluje zdrojový kód, aby se ujistil, že se s výjimkou zachází s metodou, v níž je vyhodena nebo je deklarována, takže ji lze dále zpracovat.

Všechny výjimky popsané v Výjimka které jsou jejími přímými podtřídami kromě RuntimeException se nazývají kontrolované výjimky. Nyní, kdy použít kontrolovanou výjimku? Můžete zvolit použití ověřené výjimky, když přesně víte, co dělat, když se jedná Výjimka dochází nebo je pravděpodobnost selhání větší. Některé příklady zkontrolovaných výjimek v knihovně Java zahrnují IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException, InvocationTargetException atd.

Co je to nekontrolovaná výjimka v jazyce Java?

Jedná se o výjimky, které nejsou kontrolovány při kompilaci. Nezaškrtávací výjimka představuje podmínku, která obecně odráží chyby v logice programu a nemůže být obnovena z běhu.

Jednoduše řečeno, nekontrolovaná výjimka je výjimka, která není zachycena v a Zkus chytit blok. Nemusí být výslovně zachyceno. Ve skutečnosti, když dojde k nekontrolované výjimce, Java zpracuje výjimku automaticky. Nevyřízené výjimky se většinou vyskytují v důsledku chyb při programování, například při přístupu k prvku mimo vazbu pole nebo přístupu k nulovému objektu. V Javě jsou všechny výjimky pod houpavou kontrolovány výjimky, zatímco výjimky, které jsou přímými podtřídami Chyba a RuntimeException jsou nekontrolované výjimky.

Nejlepší částí nekontrolované výjimky je to, že nezmenšuje čitelnost kódu při zachování čistého kódu klienta. Některé příklady nezahrnutých výjimek zahrnují ArithmeticException, ClassCastException, NullPointerException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException atd.

Rozdíl mezi ověřenou a nekontrolovanou výjimkou

Definice kontrolované a nekontrolované výjimky

Kontrola a nekontrolovaná výjimka jsou dva typy výjimek v jazyce Java, které zajišťují normální tok aplikace. Obě servery mají stejný účel, jak zacházet s výjimkami v Javě, a ačkoli neexistují žádné rozdíly v funkčnosti, neexistuje jediné pravidlo, které by určovalo, kdy použít zaškrtnutou a kdy použít nekontrolovanou výjimku. Zaškrtnuto Výjimka je výjimka, která je kontrolována v době kompilace, zatímco Nezahrnutá výjimka je ta, která není kontrolována při kompilaci.

Základy ověřené a nekontrolované výjimky

Ověřená výjimka odkazuje na neplatné scénáře, které se vyskytují mimo okamžitou kontrolu programu, zatímco nekontrolovaná výjimka odkazuje na chyby v programu nebo chyby v logice programu, které nemohou být obnoveny z běhu.

Manipulace s výjimkami

Pokud metoda hodí ověřenou výjimku, kompilátor zkontroluje, zda metoda zpracovává tuto výjimku pomocí bloku try-catch nebo specifikuje výjimku pomocí klíčových slov. Pokud metoda neposkytuje manipulační kód, zobrazí se chyba kompilace. Naopak, program se kompiluje správně, protože kompilátor nekontroluje, zda nebyly v době kompilace nekontrolované výjimky.

Příčina kontrolované a nekontrolované výjimky

Výjimky, které nejsou odvozeny z aplikace RunTimeException, jsou často zpracovány, zatímco výjimky se vyskytují při běhu, jsou zřídka zpracovány. Pokud je pravděpodobnost selhání příliš vysoká, nastane kontrolovaná výjimka. Nezahrnutá výjimka se naopak vyskytuje hlavně kvůli programovým chybám. Všechny výjimky v rámci tříd RuntimeException a Error jsou nezaškrtnuté výjimky, zatímco vše ostatní pod hračkou jsou kontrolované výjimky.

Příklady ověřené a nekontrolované výjimky

Některé příklady kontrolovaných výjimek jsou IOException, DataAccessException, IllegalAccessException, InterruptedException, ClassNotFoundException a další. Příklady nezahrnutých výjimek zahrnují NullPointerException, ArithmeticException, ArrayIndexOutOfBound, IllegalArgumentException, IllegalStateException, ArrayStoreException, SecurityException atd.

Zaškrtnutá vs. nekontrolovaná výjimka: Srovnávací graf

Shrnutí kontrolovaných a nekontrolovaných výjimek

Zaškrtnutá a nekontrolovaná výjimka jsou dva typy výjimek, které existují v jazyce Java. Zatímco tato funkce je pro obě výjimky stejná, mají rozdíly spravedlivé. Hlavní rozdíl mezi kontrolovanými a nekontrolovanými výjimkami spočívá v tom, že první je kontrolován kompilátorem, zatímco ten z nich unikne výpovědi překladače. Výjimky, které jsou kontrolovány a zpracovány v době kompilace, jsou kontrolovány výjimkami, zatímco výjimky, které nejsou kontrolovány a zpracovány v době kompilace, jsou nezaškrtnutými výjimkami. Tento článek vysvětluje, co je zaškrtnuto a co je nekontrolovaná výjimka, kdy je použít, a vysvětluje rozdíl mezi oběma.