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:

javascripttry {
  throw {name: 'MyError', message: 'tekst izuzetka'};
} catch (error) {
  console.log(error.name); // 'MyError'
  console.log(error.message); // 'tekst izuzetka'
}
Задание 1

Ranije smo napravili funkciju koja baca izuzetak pri deljenju sa nulom:

javascriptfunction 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.

Задание 2

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.