Получение трассировки стека для ошибки при запуске кода из консоли в Chrome - PullRequest
6 голосов
/ 18 октября 2011

Я вызываю функцию из консоли, но когда она выдает исключение, я не получаю трассировку стека, как если бы код выполнялся нормально.

Есть ли способ изменить мою команду (возможно, с помощью 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
}

console, после загрузки html-страницы, которая ссылается на page.js

> otherStuff();

Я не получаю номер строки из сообщения об ошибке, которое мне возвращается. При запуске со страницы (вместо консоли) я получал номер строки и трассировку стека.

Ответы [ 2 ]

11 голосов
/ 18 октября 2011

Хотя это и многословно, в консоли Chrome JS будет напечатана трассировка стека интерактивной ошибки:

try { 
    throw new Error(); 
} catch (e) { 
    console.error(e.stack); 
}

К сожалению, это не сработает, если выдается объект не Error.

2 голосов
/ 19 октября 2011

В вашем коде есть ошибка.

Вам не хватает закрывающей скобки:

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/

...