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

Если я переопределяю window.onerror в javascript, я должен вернуть true или false?

Я хочу зарегистрировать ошибки JavaScript, поэтому я переопределяю window.onerror следующим образом:

window.onerror = function(message, file, lineNumber) {
    var browser_ = encodeURI(navigator.appVersion);
    var error_ = encodeURI("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber);
    var user_ = encodeURI("");

    ...

    return false;
}

Я видел, как некоторые люди возвращаются true, а некоторые возвращают false. Что правильно и почему? В одном сообщении упоминалось что-то о том, нужно ли вам возвращать true, или Firefox будет обрабатывать ошибку по-своему. Что??

4b9b3361

Ответ 1

Из MDN на window.onerror:

Когда функция возвращает true, это предотвращает запуск обработчика события по умолчанию.

См. также chromium Проблема 92062:

В Chrome, возвращая true из window.onerror, разрешает распространение ошибки, а возврат false подавляет его.

Это инверсия поведения в Firefox и IE, где возвращение "true" подавляет ошибку, но возвращает false.

Примечание. проблема, упомянутая выше, была исправлена, поведение теперь упоминается в MDN для всех браузеров.