В чем разница между `throw new Error` и` throw someObject`?
Я хочу написать общий обработчик ошибок, который будет отлавливать пользовательские ошибки, специально генерируемые в любом экземпляре кода.
Когда я сделалthrow new Error('sample')
как в следующем коде
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
Журнал показывает в Firefox какError: [object Object]
и я не мог разобрать объект.
Для второгоthrow
журнал показывает как:Error: hehe
Тогда как когда я сделал
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
консоль показывается как:Object { hehe="haha"}
в котором я смог получить доступ к свойствам ошибки.
В чем разница?
Разница, как видно в коде? Как строка будет просто передана как строка, а объект как объекты, но синтаксис будет другим?
Я не исследовал объект ошибки выброса ... Я выполнял только броски строк.
Есть ли другой способ, кроме двух упомянутых выше методов?