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