Zaškrtnutá vs nezaškrtnutá výjimka: Rozdíl a srovnání

Kontrola výjimek je jednou z nejdůležitějších věcí při programování a testování softwaru. Zaškrtnutá a nezaškrtnutá výjimka zastaví běh programu, když se pokouší zachytit chybu nebo chybu.

Navíc se má za to, že je odpovědností programátora zajistit, aby se tyto chyby nikdy nestaly. Zaškrtnuté i nezaškrtnuté výjimky jsou výjimečně podobné, přesto se liší.

Key Takeaways

  1. Kompilátor kontroluje zaškrtnuté výjimky během kompilace a programátor je musí zpracovat pomocí bloku try-catch nebo klíčového slova throws, zatímco nekontrolované výjimky se vyskytují za běhu a není třeba je zpracovávat.
  2. Zaškrtnuté výjimky se používají pro obnovitelné chyby, jako je například nenalezený soubor, zatímco nekontrolované výjimky se používají pro neopravitelné chyby, jako jsou výjimky z nedostatku paměti nebo nulového ukazatele.
  3. Zaškrtnuté výjimky jsou součástí podpisu metody, zatímco nezaškrtnuté výjimky nikoli.

Zaškrtnutá vs nezaškrtnutá výjimka

Rozdíl mezi kontrolovanou a nekontrolovanou výjimkou je ten, že kontrolované výjimky jsou ty, které musí být zachyceny a zpracovány příkazem checks (), jinak způsobí ukončení programu a vytiskne trasování zásobníku, zatímco nekontrolované výjimky by naopak měly není třeba je chytat nebo s nimi vůbec manipulovat, protože to je programátorje odpovědností zajistit, aby se tyto chyby nikdy nestaly.

Zaškrtnuté vs Nekontrolované

Checked výjimka je specifický typ výjimky, která zastaví běh programu, dokud není buď zachycen blokem catch nebo specifikován v klauzuli throws metody, navíc Checked výjimka je zachycena a zpracována příkazem checks () nebo způsobí ukončení programu a vytištění trasování zásobníku.

Pokud kód, který způsobil výjimku, nebyl řádně otestován, mohlo by to způsobit podivné nekontrolované výjimečné chyby, které může být obtížné najít a opravit.

Nekontrolované výjimky by navíc nemělo být vůbec nutné zachytit nebo zpracovat, protože je odpovědností programátora zajistit, aby se tyto chyby nikdy nestaly.

Srovnávací tabulka

Parametry srovnáníZaškrtnutá výjimkaNezaškrtnutá výjimka
DefiniceZaškrtnuté výjimky jsou ty, které musí být zachyceny a zpracovány příkazy checks ().Nezaškrtnuté výjimky by nemělo být nutné vůbec chytat nebo zpracovávat.
VýskytBlok catch musí během kompilace zpracovávat kontrolované výjimky. Nezachycené výjimky, známé také jako výjimky za běhu, jsou nekontrolované výjimky.
Vypořádání se s chybouZaškrtnutá výjimka zastaví běh programu, dokud se nepokusí zachytit chybu nebo chybu. Je odpovědností programátora, aby se ujistil, že k těmto chybám nikdy nedojde.
Výjimečné třídyMá výjimečné třídy.Nemá žádné výjimečné třídy nebo není hlavní součástí výjimečných tříd.
PříkladOutOfMemoryError, NullPointerException a StackOverflowError.IndexOutOfBoundsException

Co je to kontrolovaná výjimka?

Zaškrtnuté výjimky úzce souvisejí s testováním softwaru, navíc zaškrtnutá výjimka je výjimka, která musí být ošetřena, jinak se program ukončí.

Také čtení:  Pinterest vs StumbleUpon: Rozdíl a srovnání

To znamená, že kód následující po příkazu throw se nespustí, pokud výjimku nezpracuje žádný blok catch.

Zaškrtnuté výjimky slouží ke dvěma účelům: zastaví program v pokračování, když dojde k chybě, a poskytují ladicí informace o tom, kde tuto chybu najít.

Kompilátor nenutí programátora, aby zpracoval výjimku, ale každá třída, která rozšiřuje jinou třídu, by měla také rozšířit nebo implementovat všechny její kontrolované výjimky.

Pokud tomu tak není, kompilace rozšiřující třídy selže s chybou při kompilaci, která uvádí, že musí zpracovat všechny své výjimky zkontrolované nadtřídou. Tím se zabrání použití dědičnosti k obcházení vestavěných selhání režimy.

Když je vyvolána výjimka, je předána do ladicího programu Zatmění nebo na operační systém, který pak program normálně ukončí. Operační systém vytiskne trasování zásobníku.

Trasování zásobníku poskytuje informace pro každé volání metody v pořadí, v jakém byly volány. To umožňuje programátorovi najít, kde v kódu nebo kde v průběhu provádění kódu došlo k výjimce.

Co je to nekontrolovaná výjimka?

Existují nekontrolované výjimky, které umožňují programátorům programovat flexibilněji a efektivněji. Java byla navržena tak, aby umožnila programátorům vytvářet aplikace, které efektivně využívají zdroje a vyhýbají se zdání uváznutí.

Nekontrolované výjimky lze eliminovat pečlivým návrhem a postupy kódování. Všechny výjimky kromě NullPointerException v kódu Java jsou však považovány za nezaškrtnuté.

Nekontrolované výjimky by nemělo být nutné vůbec odchytávat nebo zpracovávat.

Kromě toho představují způsob, jak kód vyšší úrovně sdělit kódu nižší úrovně, že udělá něco, co není bezpečné pro vlákna, ale nezpůsobí to problémy, pokud v daném okamžiku běží pouze jedno vlákno, jako například aktualizaci některých dat nebo vykreslení nějaké grafiky na obrazovce.

Také čtení:  Prostorový zvuk 5.1 vs 7.2: Rozdíl a srovnání

Použití nekontrolovaných výjimek je riskantní. Pokud třída vyvolá nekontrolovanou výjimku, pak kdokoli, kdo tuto třídu používá, si toho musí být vědom a mít k dispozici nějaké přísné metody, jak se s tím vypořádat.

Programátor může například chtít přečíst některá data ze souboru a poté je znovu zapsat a tento druh funkcí nepotřebuje žádnou synchronizaci.

Pro aplikaci je naprosto přijatelné číst stejná data dvakrát ve dvou různých vláknech, aniž by to mělo negativní vliv na výkon nebo stabilitu systému.

Hlavní rozdíly mezi zaškrtnutými a nezaškrtnutými výjimkami

  1. Zaškrtnuté výjimky jsou ty, které musí být zachyceny a zpracovány příkazy checks (), zatímco nezaškrtnuté výjimky by neměly být zachyceny ani zpracovány vůbec.
  2. Zaškrtnuté výjimky musí během kompilace zpracovat blok catch, zatímco nezachycené výjimky, známé také jako výjimky za běhu, jsou nekontrolované výjimky.
  3. Zaškrtnutá výjimka zastaví běh programu, dokud se nepokusí zachytit chybu nebo chybu, zatímco za nezaškrtnuté výjimky odpovídá programátor, aby se ujistil, že k těmto chybám nikdy nedojde.
  4. Zaškrtnutá výjimka má výjimečné třídy, zatímco nekontrolovaná výjimka nemá žádné výjimečné třídy nebo není hlavní součástí výjimečných tříd.
  5. Příkladem zaškrtnuté výjimky může být OutOfMemoryError, NullPointerException a StackOverflowError, zatímco příkladem nekontrolované výjimky může být IndexOutOfBoundsException.

Reference

  1. https://ieeexplore.ieee.org/abstract/document/4343929/
  2. https://link.springer.com/article/10.1023/A:1010020917337

Poslední aktualizace: 11. června 2023

tečka 1
Jedna žádost?

Vynaložil jsem tolik úsilí, abych napsal tento blogový příspěvek, abych vám poskytl hodnotu. Bude to pro mě velmi užitečné, pokud zvážíte sdílení na sociálních sítích nebo se svými přáteli / rodinou. SDÍLENÍ JE ♥️

8 myšlenek na téma „Zaškrtnutá vs nekontrolovaná výjimka: Rozdíl a srovnání“

  1. Komplexní pokrytí konceptů kontrolovaných a nekontrolovaných výjimek spolu s jejich aplikacemi poskytuje komplexní pochopení. Článek účinně řeší základní aspekty těchto výjimek v programování.

    odpověď
  2. Vysvětlení v článku o kontrolovaných výjimkách, které jsou obnovitelné chyby, jako je soubor nenalezen, a nekontrolované výjimky, které jsou neopravitelné chyby, jako je nedostatek paměti, je relevantní a podtrhuje důležitost rozlišování mezi těmito dvěma.

    odpověď
  3. Článek poskytuje podrobné informace o zaškrtnutých a nekontrolovaných výjimkách, takže je jasné, jak se liší a jaké funkce plní. Vysvětluje také, jak kompilátor zpracovává zaškrtnuté výjimky během kompilace a odpovědnost programátora za zpracování nekontrolovaných výjimek.

    odpověď
  4. Diskuse o kontrolovaných výjimkách vyžadujících blok try-catch nebo vyvolání klíčového slova, zatímco nekontrolované výjimky se vyskytují za běhu a není třeba je zpracovávat, je srozumitelná. Zdůrazňuje potenciální scénáře výskytu každého typu výjimky.

    odpověď
  5. Podrobné vysvětlení kontrolovaných výjimek, které jsou součástí podpisu metody, zatímco nekontrolované výjimky nikoli, poskytuje cenný pohled na povahu těchto výjimek. Článek účinně sděluje rozdíl mezi těmito dvěma.

    odpověď
  6. Článek nabízí důkladný rozpis kontrolovaných a nekontrolovaných výjimek, zdůrazňuje jejich význam a důsledky pro provádění programu. Jasný popis pomáhá pochopit jejich roli při vývoji a testování softwaru.

    odpověď
  7. Článek představuje komplexní srovnávací tabulku, která stručně popisuje rozdíly mezi zaškrtnutými a nezaškrtnutými výjimkami. Tabulka zjednodušuje pochopení dvou typů výjimek, jejich výskytů a způsobu zacházení s nimi.

    odpověď
  8. Podrobné informace o kontrolovaných a nekontrolovaných výjimkách, včetně definice, výskytu a zpracování chyb, slouží jako cenný zdroj pro ty, kteří chtějí prohloubit své znalosti o testování softwaru a principech programování.

    odpověď

Zanechat komentář

Chcete si tento článek uložit na později? Klikněte na srdce v pravém dolním rohu pro uložení do vlastního pole článků!