Функция $.readyException()

Определение и применение

Функция $.readyException() обрабатывает исключения, синхронно возникшие внутри обработчиков готовности документа. Её можно переопределить, чтобы передавать такие ошибки в журнал приложения и показывать понятное сообщение.

Синтаксис

JavaScript
$.readyException = function (error) {
  console.error(error);
};

Параметры и возвращаемое значение

Аргумент error — выброшенная ошибка. Пользовательская функция не должна возвращать полезный результат: jQuery его не использует. По умолчанию библиотека повторно выбрасывает ошибку через таймер, делая её видимой в консоли и глобальном обработчике ошибок.

Установите свою функцию до выполнения обработчиков .ready(). Это общая настройка подключённой jQuery, а не обработчик одного компонента. Если требуется временная замена, сохраните прежнюю функцию и восстановите после завершения работы.

Особенности и совместимость

API доступен с 3.1 и поддерживается в 4.0. Он не перехватывает все ошибки страницы: отказ отдельного Promise или исключение в позднем обработчике события требует собственного механизма обработки.

При переопределении не теряйте диагностику. В примере ошибка превращается в видимый текст, а второй обработчик готовности продолжает работу. Ожидаемые ошибки данных лучше обрабатывать рядом с самой операцией.

Документация

Пример использования

Ошибка одного обработчика не мешает другому: попробуйте сами

Появятся сообщение об ошибке и строка второго обработчика. Оба результата должны сохраниться. Используется jQuery 4.0.0.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
$.readyException = function (error) {
    $('#result').append('Ошибка: ' + error.message + '\n')
}
$(function () {
    throw new Error('Нет настроек')
})
$(function () {
    $('#result').append('Второй обработчик выполнен\n')
})