Обработка исключений 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-это если вы не обрабатываете исключение.