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

Обзор ​

uncaughtExceptionIntegration слушает события процесса uncaughtException и unhandledRejection и сообщает о каждом через captureException(). Она включена по умолчанию (вместе с ContextLinesIntegration) — аналог браузерной globalErrorIntegration для Node.

После отправки она выталкивает всё, что ещё в буфере транспорта, печатает ошибку в stderr и завершает процесс с кодом 1 — то же самое Node делает сам при необработанной ошибке, потому что после неё процесс в неопределённом состоянии.

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

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

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

ts
import { disable, init } from '@buglapse/node'

disable('uncaught-exception')
init({ dsn: '{dsn}' })

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