Получение трассировки стека для ошибки при запуске кода из консоли в Chrome
Я вызываю функцию из консоли, но когда она выдает исключение, я не получаю трассировку стека, как если бы код выполнялся нормально.
Есть ли способ, которым я могу изменить свою команду (возможно, с помощью try/catch), чтобы она предоставила мне эту информацию?
уточнить:
page.js:
function otherStuff() { return ['a','b',undefined,'c'];
function doStuff() {
var x = otherStuff();
var z = parseInt(x[2]); // this will throw an error
}
консоль, после загрузки HTML-страницы, которая ссылается на page.js
> otherStuff();
Я не получаю номер строки с ошибкой, которая возвращается мне. При запуске со страницы (вместо консоли) я получал бы номер строки и трассировку стека.
2 ответа
Несмотря на многословность, это выведет трассировку стека интерактивной ошибки в консоли Chrome JS:
try {
throw new Error();
} catch (e) {
console.error(e.stack);
}
К сожалению, это не сработает, если неError
объект брошен.
У вас есть ошибка в вашем коде.
Вам не хватает закрывающей скобки:
function otherStuff() { return ['a','b',undefined,'c']; //} where am i?
function doStuff() {
var x = otherStuff();
var z = parseInt(x[2]); // this will throw an error
}
Боковая точка:
parseInt(undefined)
не выдает ошибку. наглядный пример: http://jsfiddle.net/maniator/Zequj/2/