Bacanje sopstvenih tipova izuzetaka u JavaScript-u
Broj ugrađenih izuzetaka u JavaScript-u nije tako veliki i oni najčešće ne mogu zadovoljiti sve naše potrebe za različitim tipovima izuzetaka. Stoga je u JavaScript ugrađena mogućnost da se kreiraju izuzeci sa sopstvenim tipom.
Postoje različiti načini da se to uradi. Najjednostavniji
je da se u throw prosledi objekat
sa ključevima name i message:
try {
throw {name: 'MyError', message: 'tekst izuzetka'};
} catch (error) {
console.log(error.name); // 'MyError'
console.log(error.message); // 'tekst izuzetka'
}
Ranije smo napravili funkciju koja baca izuzetak pri deljenju sa nulom:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('greška pri deljenju sa nulom');
}
}
Izmenite ovu funkciju tako da baca
izuzetak sa nekim izmišljenim od strane nas
tipom, na primer, DivisionByZeroError.
Ranije ste pravili funkciju koja baca izuzetak pri pokušaju izvlačenja korena iz negativnog broja. Izmenite vašu funkciju tako da ona baca izuzetak sa izmišljenim od strane vas tipom. Dobro razmislite o nazivu izuzetka, da bi taj naziv bio dobar.