Перейти к содержимому

Обзор ​

globalErrorIntegration слушает события окна error и unhandledrejection и сообщает о каждом через captureException(). Она включена по умолчанию (вместе с SessionIntegration) — каждое необработанное исключение и каждый промис, отклонение которого никто не ждал, попадает в Инциденты без дополнительного кода.

Такие ошибки помечаются handled: no, и сессия с ними считается упавшей (см. Сессии); ошибки, о которых вы сообщаете сами через captureException(), делают её только сессией с ошибкой.

Отклонение, причина которого не Error (например, Promise.reject('nope')), оборачивается в Error, так что у него всё равно есть имя, сообщение и стек.

Использование ​

Ничего делать не нужно — init() регистрирует её автоматически. Чтобы выключить:

ts
import { disable } from '@buglapse/browser'

disable('global-error')

Чтобы заменить своей реализацией, передайте интеграцию с именем 'global-error' в init({ integrations }) — см. Своя интеграция.

Ошибки внутри колбэков setTimeout, requestAnimationFrame или обработчиков событий тоже ловятся здесь, но браузеры урезают их до Script error., если скрипт с другого домена и без CORS, и такая ошибка пропускается — сообщать не о чем. BrowserApiErrorsIntegration сохраняет исходную ошибку в месте её возникновения; с ней эта интеграция сообщает об исходной ошибке.