В чем разница между `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"} в котором я смог получить доступ к свойствам ошибки.

В чем разница?

Разница, как видно в коде? Как строка будет просто передана как строка, а объект как объекты, но синтаксис будет другим?

Я не исследовал объект ошибки выброса ... Я выполнял только броски строк.

Есть ли другой способ, кроме двух упомянутых выше методов?

Ответы на вопрос(5)

Ваш ответ на вопрос