V tomto tutoriále sa dozvieme o výnimkách v Jave. Pokryjeme chyby, výnimky a rôzne typy výnimiek v Jave.
Výnimkou je neočakávaná udalosť, ku ktorej dôjde počas vykonávania programu. Ovplyvňuje tok pokynov programu, čo môže spôsobiť abnormálne ukončenie programu.
Výnimka môže nastať z mnohých dôvodov. Niektoré z nich sú:
- Neplatný vstup používateľa
- Porucha zariadenia
- Strata sieťového pripojenia
- Fyzické obmedzenia (nedostatok pamäte disku)
- Chyby kódu
- Otvára sa nedostupný súbor
Hierarchia výnimiek Java
Tu je zjednodušený diagram hierarchie výnimiek v Jave.
Ako vidíte na obrázku vyššie, Throwable
trieda je koreňovou triedou v hierarchii.
Všimnite si, že hierarchia sa delí na dve vetvy: Chyba a Výnimka.
Chyby
Chyby predstavujú nedobytné podmienky, ako napríklad nedostatok pamäte Java Virtual Machine (JVM), úniky pamäte, chyby pretečenia zásobníka, nekompatibilita knižnice, nekonečná rekurzia atď.
Chyby sú zvyčajne mimo kontroly programátora a nemali by sme sa snažiť chyby spracovávať.
Výnimky
Program môže zachytiť a vyriešiť výnimky .
Ak v rámci metódy dôjde k výnimke, vytvorí sa objekt. Tento objekt sa nazýva objekt výnimky.
Obsahuje informácie o výnimke, ako je názov a popis výnimky a stav programu, keď sa výnimka vyskytla.
Ako zvládnuť tieto výnimky sa dozvieme v nasledujúcom tutoriále. V tejto príručke sa teraz zameriame na rôzne typy výnimiek v Jave.
Typy výnimiek Java
Hierarchia výnimiek má tiež dve vetvy: RuntimeException
a IOException
.
1. RuntimeException
Runtime výnimka stane kvôli programovacie chyby. Sú tiež známe ako nekontrolované výnimky .
Tieto výnimky sa nekontrolujú v čase kompilácie, ale v čase spustenia. Niektoré z bežných runtime výnimiek sú:
- Nesprávne použitie API -
IllegalArgumentException
- Prístup s nulovým ukazovateľom (chýba inicializácia premennej) -
NullPointerException
- Prístup k poli mimo rozsahu -
ArrayIndexOutOfBoundsException
- Rozdelenie čísla na 0 -
ArithmeticException
Môžete o tom premýšľať týmto spôsobom. "Ak je to runtime výnimka, je to tvoja chyba."
K tomu NullPointerException
by nedošlo, keby ste pred použitím skontrolovali, či bola premenná inicializovaná alebo nie.
ArrayIndexOutOfBoundsException
By nebolo došlo, ak ste testovali index poľa proti poľa medziach.
2. Výnimka IO
An IOException
sa tiež nazýva kontrolovaná výnimka . Kontroluje ich kompilátor v čase kompilácie a programátor je vyzvaný, aby tieto výnimky spracoval.
Niektoré z príkladov kontrolovaných výnimiek sú:
- Výsledkom bude pokus o otvorenie súboru, ktorý neexistuje
FileNotFoundException
- Pokúšam sa prečítať za koniec súboru
Teraz už vieme o výnimkách, o zaobchádzaní s výnimkami sa dozvieme v ďalšom tutoriále.