Selles õpetuses õpime tundma Java erandeid. Käsitleme Java vigu, erandeid ja erinevat tüüpi erandeid.
Erandiks on ootamatu sündmus, mis toimub programmi käivitamisel. See mõjutab programmi juhiste voogu, mis võib põhjustada programmi ebatavalise katkestamise.
Erand võib tekkida mitmel põhjusel. Mõned neist on:
- Vale kasutaja sisend
- Seadme rike
- Võrguühenduse kadumine
- Füüsilised piirangud (kettamälu on otsas)
- Koodivead
- Puuduva faili avamine
Java erandite hierarhia
Siin on Java erandihierarhia lihtsustatud diagramm.
Nagu ülaltoodud pildilt näha, on Throwable
klass hierarhias juurklass.
Pange tähele, et hierarhia jaguneb kaheks haruks: tõrge ja erand.
Vead
Vead tähistavad taastamatuid tingimusi, nagu Java virtuaalse masina (JVM) mälu otsa saamine, mälulekked, korstna ületäitumisvead, teegi kokkusobimatus, lõpmatu rekursioon jne.
Vead on tavaliselt programmeerija kontrolli alt väljas ja me ei peaks proovima vigu käsitleda.
Erandid
Erandeid saab programm tabada ja käsitleda.
Kui meetodi sees tekib erand, loob see objekti. Seda objekti nimetatakse erandobjektiks.
See sisaldab teavet erandi kohta, näiteks erandi nimi ja kirjeldus ning programmi olek erandi ilmnemisel.
Nende erandite käsitlemist õpime järgmises õpetuses. Selles õpetuses keskendume nüüd Java eri tüüpi eranditele.
Java erandite tüübid
Erandihierarhial on ka kaks haru: RuntimeException
ja IOException
.
1. RuntimeException
Runtime arvatud juhtub tõttu programmeerimine viga. Neid tuntakse ka kontrollimata eranditena .
Neid erandeid ei kontrollita kompileerimise ajal, vaid käitamise ajal. Mõned levinud käituse erandid on:
- API ebaõige kasutamine -
IllegalArgumentException
- Nullkursori juurdepääs (muutuja initsialiseerimine puudub) -
NullPointerException
- Piiriväline massiivi juurdepääs -
ArrayIndexOutOfBoundsException
- Arvu jagamine 0-ga -
ArithmeticException
Selle peale saab mõelda nii. "Kui see on käitamise aegne erand, siis olete selles süüdi".
Seda NullPointerException
ei oleks juhtunud, kui oleksite enne selle kasutamist kontrollinud, kas muutuja on initsialiseeritud või mitte.
Seda ArrayIndexOutOfBoundsException
ei oleks juhtunud, kui testiksite massiivi indeksit massiivi piiride suhtes.
2. IOException
An IOException
on tuntud ka kui kontrollitud erand . Kompilaator kontrollib neid kompileerimise ajal ja programmeerijal palutakse neid erandeid käsitleda.
Mõned kontrollitud erandite näited on järgmised:
- Püüab avada faili, mida pole olemas, tulemuseks on
FileNotFoundException
- Proovitakse faili lõpust lugeda
Nüüd teame eranditest, erandite käsitlemisest õpime järgmises õpetuses.