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

Window.onerror не работает в хроме

Я пытаюсь добавить событие onerror на свой сайт.

window.onerror = function() {
    alert("an error");
}

Но все, что я получаю, это:

notThere();
ReferenceError: notThere is not defined

Что мне не хватает?

Браузер: Chrome 26.0.1410.64 м

Шаги для воспроизведения:

  • добавьте код в консоль.
  • добавить notThere() в консоль
4b9b3361

Ответ 1

window.onerror работает в Chrome (см. jsfiddle - http://jsfiddle.net/PWSDF/), но, видимо, не в консоли - что имеет смысл.

Ответ 3

Некоторые другие причины, по которым вы не сможете обрабатывать ошибки в window.onerror (кроме указанных):

  • Другая библиотека устанавливает window.onerror после вас.
  • Если вы используете Angular, ошибки не пройдут через window.onerror. Вы должны обращаться с ними, используя этот factory:

        .factory('$exceptionHandler', function() {
            return function errorCatcherHandler(exception, cause) {
                console.error(exception);
                if (window.OnClientError) window.OnClientError(exception);
            };
        })
    

См:

https://docs.angularjs.org/api/ng/service/ $exceptionHandler

http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html