Функция $.readyException()
Определение и применение
Функция $.readyException() обрабатывает исключения, синхронно возникшие внутри обработчиков готовности
документа. Её можно переопределить, чтобы передавать такие ошибки в журнал приложения и показывать понятное сообщение.
Синтаксис
$.readyException = function (error) {
console.error(error);
};Параметры и возвращаемое значение
Аргумент error — выброшенная ошибка. Пользовательская функция не должна возвращать полезный результат:
jQuery его не использует. По умолчанию библиотека повторно выбрасывает ошибку через таймер, делая её видимой в консоли
и глобальном обработчике ошибок.
Установите свою функцию до выполнения обработчиков
.ready(). Это общая настройка подключённой jQuery, а не обработчик одного компонента. Если требуется временная замена,
сохраните прежнюю функцию и восстановите после завершения работы.
Особенности и совместимость
API доступен с 3.1 и поддерживается в 4.0. Он не перехватывает все ошибки страницы: отказ отдельного Promise или исключение в позднем обработчике события требует собственного механизма обработки.
При переопределении не теряйте диагностику. В примере ошибка превращается в видимый текст, а второй обработчик готовности продолжает работу. Ожидаемые ошибки данных лучше обрабатывать рядом с самой операцией.
Документация
Пример использования
Ошибка одного обработчика не мешает другому: попробуйте сами
Появятся сообщение об ошибке и строка второго обработчика. Оба результата должны сохраниться. Используется jQuery 4.0.0.
index.html
<pre id="result"></pre>
main.js
$.readyException = function (error) {
$('#result').append('Ошибка: ' + error.message + '\n')
}
$(function () {
throw new Error('Нет настроек')
})
$(function () {
$('#result').append('Второй обработчик выполнен\n')
})
Нажмите , чтобы запустить пример.