Подтвердить что ты не робот

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

Ответ 1

Каждый браузер обрабатывает это по-другому, поэтому нет универсального способа сделать это. В этом сообщении в блоге есть хороший код для вывода трассировки стека для большинства поддерживаемых браузеров. Я не думаю, что есть хороший способ предоставить номер строки.

Если вы хотите отлаживать одну функцию, в частности, Firebug имеет хорошую функцию отслеживания стека (vis console.trace()).

Ответ 2

Посмотрите этот.

Способ анализа доступной информации:

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; 
}

Ответ 3

Я обнаружил, что в JavaScript, запущенном под IE, невозможно зафиксировать трассировку стека в точке, где исключено исключение. Согласно this PDF единственный способ получить трассировку стека в IE - это если вы не обрабатываете исключение.