Выбрасывание различных типов исключений в 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 выведите разные сообщения об ошибке для исключений разных типов.