Получение трассировки стека для ошибки при запуске кода из консоли в 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/

Другие вопросы по тегам