Deo zbornika Napredni Javaskript
Hvatanje grešaka
Greške se dešavaju i dobro je uspostaviti mehanizam pomoću kojeg program može da predvidi pojavu greške, i prevaziđe je na regularan način.
U JavaScriptu, kao i mnogim drugim jezicima, postoje naredbe try, catch i finally, koje nam pomažu da uhvatimo grešku.
Pokušaj i hvatanje
Recimo želimo da iskoristimo funkciju iz neke biblioteke, za koju u trenutku izvršenja programa nismo sigurni da je prisutna. Možemo pokušati da je pozovemo, a ako ne postoji, uhvatićemo grešku pre nego što dođe do korisnika. Treba samo da upotrebimo naredbe try i catch na sledeći način:
try {
angular()
} catch (e) {
console.log(e.message)
}
Blok nakon catch se aktivira samo ako je prilikom pokušaja (try) došlo do greške. U bloku za hvatanje greške treba definisati šta se dešava kada do greške dođe. Na primer, možemo samo obavestiti korisnika ili izvršiti neku rezervnu operaciju.
Promenljiva e u zagradama iza naredbe catch sadrži objekat greške. Neka od korisnih svojstava su e.name i e.message.
Konačni blok
Pored pokušaja izvršenja (try) i hvatanja greške (catch), koji su međusobno isključivi, postoji i blok koji se uvek izvršava - finally:
try {
angular()
} catch (e) {
console.log(e.name + ': ' + e.message)
} finally {
console.log('Konačni blok se uvek izvršava.')
}
Ime greške
Svojstvo e.name sadrži naziv konstruktora korišćenog za kreiranje objekta greške. Objekti greške se kreiraju pomoću jednog od ugrađenih konstruktora EvalError, RangeError, ReferenceError, SyntaxError, TypeError i URIError. Svi ovi konstruktori su nasleđeni od objekta Error.
Literatura
- Ved Antani, Stojan Stefanov, Objektno-orjentisan JavaScript, Beograd, 2017.