Doporučená, 2021

Redakce Choice

Rozdíl mezi chybou a výjimkou v Javě

„Throwable“ slouží jako kořen hierarchie chyb a výjimek jazyka Java. „Chyba“ je kritická podmínka, kterou kód programu nemůže zpracovat. „Výjimka“ je výjimečná situace, kterou lze zpracovat kódem programu. Významný rozdíl mezi chybou a výjimkou je, že chyba je způsobena nedostatkem systémových prostředků a výjimka je způsobena kódem. Podívejme se na další rozdíly mezi chybou a výjimkou spolu s srovnávací tabulkou.

Srovnávací graf

Základ pro porovnáníChybaVýjimka
ZákladníChyba je způsobena nedostatkem systémových prostředků.Výjimka je způsobena kódem.
ZotaveníChyba je nenahraditelná.Výjimka je obnovitelná.
Klíčová slovaNeexistuje žádný způsob zpracování chyby programovým kódem.Výjimky jsou zpracovávány pomocí tří klíčových slov „try“, „catch“ a „throw“.
Důsledky
Jakmile je chyba zjištěna, program se ukončí abnormálně.Jako výjimka je zjištěna, že je hozen a chytil klíčem "hodit" a "chytit" odpovídajícím způsobem.
TypyChyby jsou klasifikovány jako nezaškrtnuté.Výjimky jsou klasifikovány jako kontrolované nebo nezaškrtnuté.
BalíkV jazyce Java jsou definovány chyby "java.lang.Error".V jazyce Java jsou výjimky definovány v "java.lang.Exception".
PříkladOutOfMemory, StackOverFlow.Zaškrtnuté výjimky: NoSuchMethod, ClassNotFound.
Nezaškrtnuté výjimky: NullPointer, IndexOutOfBounds.

Definice chyby

Chyba “ je podtřída vestavěné třídy „Throwable“. Chyby jsou kritické podmínky, které nastanou v důsledku nedostatku systémových prostředků a nemohou být zpracovány kódem programu. Chyby nelze obnovit žádným způsobem, protože nemohou být vytvořeny, hozeny, zachyceny nebo odpovězeny. Chyby jsou způsobeny katastrofickou poruchou, kterou váš program obvykle nemůže řešit.

Chyby jsou vždy nekontrolovaného typu, protože kompilátor nemá žádné informace o jeho výskytu. Chyby se vždy vyskytují v prostředí run-time. Chyba může být vysvětlena pomocí příkladu, program má chybu přetečení zásobníku, chyba paměti, nebo selhání systému, tento druh chyby jsou způsobeny systémem. Kód není za tyto chyby zodpovědný. Důsledkem výskytu chyby je, že program je ukončen abnormálně.

Definice výjimky

„Výjimka“ je také podtřída vestavěné třídy „Throwable“. Výjimkou jsou výjimečné podmínky, které se vyskytují v běhovém prostředí. Většinou jsou výjimky způsobeny kódem našeho programu. Výjimky však mohou být zpracovány samotným programem, protože výjimky jsou obnovitelné. Výjimky jsou řešeny pomocí tří klíčových slov „try“, „catch“, „throw“. Výjimkou syntaxe zápisu je:

 try {// napište kód zde} Úlovek (typ výjimky) {// napište svůj kód zde} 

Ve výše uvedeném kódu je kód napsaný v bloku pokusu kód, který chcete monitorovat pro výjimku. Pokud výjimka nastane v bloku pokusu, je vyvolána klíčovým slovem „hodit“. Výjimku, která byla vyvolána, může chytit blok „catch“ výše uvedeného kódu. „Typ výjimky“ je typ výjimky, ke které došlo.

Jednoduchými slovy můžeme říci, že chyby, ke kterým došlo v důsledku nesprávného kódu, se nazývají výjimky. Pokud například nebyla nalezena požadovaná třída nebo nebyla nalezena požadovaná metoda. Tyto druhy výjimek jsou způsobeny kódem v programu; systém není odpovědný za tyto druhy výjimek. Výjimky jsou klasifikovány jako „kontrolované“ a „nezaškrtnuté“. Nekontrolované výjimky nejsou ve znalostech kompilátoru, jak se vyskytují během běhu, zatímco kompilátor má znalosti o kontrolovaných výjimkách, které jsou kompilátoru známy během kompilace.

Klíčové rozdíly v chybách a výjimkách

  1. Došlo k chybě pouze v případě, že systémové prostředky jsou nedostatečné, zatímco výjimka je způsobena, pokud kód má nějaký problém.
  2. Chyba nemůže být nikdy obnovena, protože výjimku lze obnovit přípravou kódu pro zpracování výjimky.
  3. Chyba nemůže být nikdy zpracována, ale výjimka může být zpracována kódem, pokud je v rámci bloku pokusu a zachycení zapsána výjimka kódu.
  4. Pokud došlo k chybě, program bude ukončen abnormálně. Na druhou stranu Pokud dojde k výjimce, program vyvolá výjimku a je zpracován pomocí bloku pokusu a zachycení.
  5. Chyby jsou nekontrolovaného typu, tj. Chyba není ve znalostech kompilátorů, zatímco výjimka je klasifikována jako zaškrtnutá a nezaškrtnutá.
  6. Chyby jsou definovány v balíku java.lang.Error, zatímco výjimka je definována java.lang.Exception.

Závěr:

Výjimkou jsou výsledky chyb v kódování programu a chyby jsou výsledkem nesprávného fungování systému

Top