Конструктор Error
используется для создания объекта ошибки. Объекты ошибок выбрасываются при возникновении ошибок во время выполнения. Объект Error также может использоваться как базовый объект для определенных пользователем исключений.
Определяемые пользователем ошибки генерируются с помощью оператора throw
. управление программой будет передано в первый блок catch
в стеке вызовов.
Разница между выдачей ошибки с и без объекта Error:
throw {'hehe':'haha'};
В chrome devtools выглядит так:
Chrome сообщает нам, что у нас есть необработанная ошибка, которая является просто объектом JS. Сам объект может иметь информацию об ошибке, но мы до сих пор не знаем, откуда она появилась. Не очень полезно, когда мы работаем над нашим кодом и отлаживаем его.
throw new Error({'hehe':'haha'});
В chrome devtools выглядит так:
Ошибка, выдаваемая объектом Error, дает нам трассировку стека при ее расширении. Это дает нам ценную информацию, откуда именно произошла ошибка, которая часто является ценной информацией при отладке вашего кода. Также обратите внимание, что в сообщении об ошибке указано [object Object]
, это связано с тем, что конструктор Error
ожидает строку сообщения в качестве первого аргумента. Когда он получает объект, он приводит его в строку.