Обзор
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 }) — см. Своя интеграция.