Как я перезаписываю глобальный Обработчик исключений в JavaScript так, чтобы это стало обработчиком верхних уровней для всех неперехваченных исключений?
Править: window.onerror не работал, код:
<HTML>
<HEAD>
<script language='javascript'>
window.onerror = function (em, url, ln) {
alert(em + ", " + url + ", " + ln);
return false;
}
function fGo() {
try
{
var a = b; // error here : b not defined
}
catch (e)
{
throw e;
}
}
</script>
</HEAD>
<BODY>
<button onclick='fGo()'>GO</button>
</BODY>
</HTML>
Я тестирую на хроме, между прочим. Консоль Developer регистрирует неперехваченное исключение, но предупреждение () в window.onerror не появляется.
По состоянию на 2013 год Chrome поддерживает window.onerror
. (У меня есть комментарии к версии 25, подразумевающие и более ранние версии)
Я обернул JQuery с помощью каррирования для создания прокси, который всегда выполняет try ... catch
в функциях JQuery.
Я использую его в www.js-analytics.com , однако решение применимо только для сценариев JQuery.
До 2013 года Google Chrome не поддерживал window.onerror
, очевидно, это не было реализовано в WebKit.
window.onerror = function(errorMsg, url, lineNumber) {
// code to run when error has occured on page
}
Возможно, вы ищете window.onerror Не уверен доступно ли это во всех браузерах.