#javascript #firefox #error-handling #firebug #gecko
#javascript #firefox #обработка ошибок #firebug #геккон
Вопрос:
Я заметил, что даже при включенном «показывать трассировку стека с ошибками» из выпадающего списка только у возникающих ошибок, похоже, есть трассировки, но когда я это делаю: throw new Error('foo');
я не вижу для этого никакой трассировки стека, хотя, похоже, она отображается в консоли точно так же, как и другие возникающие ошибки, такие как iDoNotExist()
.
Я чего-то не понимаю?
Также кажется, что я получаю трассировку стека для вызова console.error('foo');
. Странно.
Следует отметить, что трассировки стека действительно возникают в Webkit Inspector и Opera при выполнении throw new Error('foo');
.
Комментарии:
1. Может помочь добавить, с какой версией Firebug и с какой версией браузера вы сталкиваетесь с этим.
2. Firefox 4, 5, 6 и последняя версия Firebug 1.7. Может быть, я мог бы попробовать последнюю бета-версию 1.7.1bx.
3. @rFactor, На консоли просто установите флажок «Показывать трассировку стека с ошибками»
Ответ №1:
Для других, размещенных здесь :
Проблема для меня заключалась в том, что showStackTrace
для Firebug по умолчанию установлено значение false.
Вот как это включить :
-
Переход
about:config
в Firefox -
Измените значение предпочтения
extensions.firebug.showStackTrace
сfalse
наtrue
(двойной щелчок переключает значение).
Комментарии:
1. В вопросе упоминается, что опция Показывать трассировку стека с ошибками уже включена, которая переключает именно это предпочтение. Таким образом, этот ответ не решает первоначальную проблему. Я предполагаю, что это была ошибка в более ранней версии Firebug.
2. Ответ может не решить первоначальную проблему, но он, несомненно, решил мою проблему. 1
3. Я хотел бы поблагодарить разработчиков firebug за это приятное изменение конфигурации.
Ответ №2:
Я тестировал этот код в Firebug 1.7.1b2 (FF: 4.0.1, на win7), и он показывает мне трассировку стека:
function a(){
throw new Error('s');
};
function b(){
a()
}
b();
Комментарии:
1. Это не дает мне никакой трассировки стека.
Ответ №3:
Вы пробовали:
var err = new Error();
err.name = 'My custom error';
err.message = 'foo';
throw(err);
Или даже (не всегда работает):
throw 'foo';
throw('foo');
Комментарии:
1. Трассировки стека нет. Пробовал даже на Aurora и Firebug 1.8 без разницы.