Хвърляне на различни типове изключения в JavaScript

Нека хвърлим собствено изключение и да видим как ще се държи обектът с грешка в този случай:

javascripttry {
  throw new Error('текст на изключението');
} catch (error) {
  console.log(error.name); // 'Error'
  console.log(error.message); // 'текст на изключението'
}

Както виждате, типът на нашето изключение е 'Error'. Същият тип ще имат всички изключения, хвърлени по подобен начин. Това обаче не винаги ще бъде удобно, тъй като, ако имаме няколко изключения, няма да можем да ги различим едно от друго.

В JavaScript има предвидено решение на този проблем: може да се хвърлят изключения не само от тип Error, но и на всеки вграден в JavaScript тип грешка, например TypeError, SyntaxError, RangeError.

Нека за пример хвърлим изключение от тип SyntaxError:

javascripttry {
  throw new SyntaxError('текст на изключението');
} catch (error) {
  console.log(error.name); // 'SyntaxError'
  console.log(error.message); // 'текст на изключението'
}
Задание 1

Хвърлете изключение от тип TypeError.

Задание 2

Хвърлете изключение от тип SyntaxError и RangeError. Хванете тези изключения с помощта на един блок try. В блока catch изведете различни съобщения за грешка за изключения от различни типове.