Bacanje različitih tipova izuzetaka u JavaScript
Hajde da bacimo svoj izuzetak i da vidimo, kako će se objekat sa greškom ponašati u ovom slučaju:
try {
throw new Error('tekst izuzetka');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'tekst izuzetka'
}
Kao što vidite, tip našeg izuzetka je 'Error'.
Isti tip će imati svi izuzeci bačeni na sličan
način. Ovo, međutim, neće uvek biti zgodno,
jer, ako možemo imati nekoliko izuzetaka,
nećemo moći da ih razlikujemo jedne od drugih.
U JavaScript-u je predviđeno rešenje za ovaj problem:
mogu se bacati izuzeci ne samo tipa
Error, već i bilo kog ugrađenog u JavaScript
tipa greške, na primer, TypeError,
SyntaxError, RangeError.
Hajde za primer da bacimo izuzetak tipa
SyntaxError:
try {
throw new SyntaxError('tekst izuzetka');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'tekst izuzetka'
}
Bacite izuzetak tipa TypeError.
Bacite izuzetak tipa SyntaxError
i RangeError. Uhvatite ove izuzetke
pomoću jednog bloka try. U bloku catch
prikažite različite poruke o grešci za izuzetke
različitih tipova.