Обработка исключений JavaScript-отображение номера строки
при ловле / обработке исключений в JavaScript, как я могу определить, что стек вызовов был, когда произошло исключение? (а также, если возможно, какой номер строки был)
try
{
// etc...
}
catch (ex)
{
// At this point here I want to be able to print out a detailed exception
// message, complete with call stack, and if possible line numbers.
}
3 ответов
каждый браузер обрабатывает это по-другому, поэтому нет универсального способа сделать это. этот блог имеет хороший код для сброса трассировки стека для большинства поддерживаемых браузеров. Я не думаю, что есть хороший способ предоставить номер линии.
Если вы хотите отладить одну функцию, в частности, Палий имеет хорошую функцию трассировки стека (консоль vis.проследить.))(
посмотреть этой.
способ анализа имеющейся информации:
try
{
doInit();
} catch(err)
{
var vDebug = "";
for (var prop in err)
{
vDebug += "property: "+ prop+ " value: ["+ err[prop]+ "]\n";
}
vDebug += "toString(): " + " value: [" + err.toString() + "]";
status.rawValue = vDebug;
}
Я обнаружил, что в JavaScript, работающем под IE, невозможно захватить трассировку стека в точке, где поймано исключение. Согласно этой PDF единственный способ получить трассировку стека в IE-это если вы не обрабатываете исключение.