Srovnávací graf
Základ pro porovnání | Chyba | Vý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á slova | Neexistuje žá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. |
Typy | Chyby jsou klasifikovány jako nezaškrtnuté. | Výjimky jsou klasifikovány jako kontrolované nebo nezaškrtnuté. |
Balík | V jazyce Java jsou definovány chyby "java.lang.Error". | V jazyce Java jsou výjimky definovány v "java.lang.Exception". |
Příklad | OutOfMemory, 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
- 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.
- Chyba nemůže být nikdy obnovena, protože výjimku lze obnovit přípravou kódu pro zpracování výjimky.
- 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.
- 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í.
- 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á.
- 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