Хвърляне на различни типове изключения в JavaScript
Нека хвърлим собствено изключение и да видим как ще се държи обектът с грешка в този случай:
try {
throw new Error('текст на изключението');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'текст на изключението'
}
Както виждате, типът на нашето изключение е 'Error'.
Същият тип ще имат всички изключения, хвърлени
по подобен начин. Това обаче не винаги
ще бъде удобно, тъй като, ако имаме
няколко изключения, няма да можем да ги различим
едно от друго.
В JavaScript има предвидено решение на този проблем:
може да се хвърлят изключения не само от тип
Error, но и на всеки вграден в JavaScript
тип грешка, например TypeError,
SyntaxError, RangeError.
Нека за пример хвърлим изключение от тип
SyntaxError:
try {
throw new SyntaxError('текст на изключението');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'текст на изключението'
}
Хвърлете изключение от тип TypeError.
Хвърлете изключение от тип SyntaxError
и RangeError. Хванете тези изключения
с помощта на един блок try. В блока catch
изведете различни съобщения за грешка за изключения
от различни типове.