Глобальный обработчик исключений JavaScript (в Chrome)

Как я перезаписываю глобальный Обработчик исключений в 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 не появляется.

12
задан c69 8 July 2013 в 19:07
поделиться

3 ответа

По состоянию на 2013 год Chrome поддерживает window.onerror . (У меня есть комментарии к версии 25, подразумевающие и более ранние версии)

Я обернул JQuery с помощью каррирования для создания прокси, который всегда выполняет try ... catch в функциях JQuery.

Я использую его в www.js-analytics.com , однако решение применимо только для сценариев JQuery.

До 2013 года Google Chrome не поддерживал window.onerror , очевидно, это не было реализовано в WebKit.

15
ответ дан 2 December 2019 в 18:53
поделиться
window.onerror = function(errorMsg, url, lineNumber) {
    // code to run when error has occured on page
}
3
ответ дан 2 December 2019 в 18:53
поделиться

Возможно, вы ищете window.onerror Не уверен доступно ли это во всех браузерах.

0
ответ дан 2 December 2019 в 18:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: