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.