Bacanje sopstvenih tipova izuzetaka u JavaScript
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. Zato JavaScript ima ugrađenu mogućnost da se kreiraju izuzeci sa sopstvenim tipom.
Postoje različiti načini da se ovo 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 tipom
našeg dizajna, 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 baca izuzetak sa izmišljenim tipom od strane vas. Dobro razmislite o nazivu izuzetka, da bi taj naziv bio dobar.