Skip to content

Ручной перехват ошибок

useErrorBoundary() — для программного использования вне шаблонного <ErrorBoundary>: например, для собственного состояния ошибки на уровне layout в Nuxt или для регистрации ошибок из кода, который errorCaptured никогда не увидит.

ts
const { error, hasError, reset, captureError } = useErrorBoundary({
  onError: (e) => report(e),
  reporter: myReporter,
})

try {
  JSON.parse(untrustedInput)
} catch (err) {
  captureError(err, { source: 'manual', componentName: 'ImportPanel' })
}

Опции

onError

(error: CapturedError) => void · по умолчанию: —

Вызывается для каждой перехваченной ошибки.

beforeReset

() => void · по умолчанию: —

Вызывается непосредственно перед тем, как reset() очистит состояние.

reporter

ErrorReporter | ErrorReporter[] · по умолчанию: —

Репортер(ы), вызываемые один раз на каждую перехваченную ошибку — см. Адаптеры отчётности.

reportContext

Record<string, unknown> · по умолчанию: —

Дополнительный контекст, добавляемый к каждому вызову report().

internalErrorPrefix

string · по умолчанию: '[vue-error-boundary-kit]'

Префикс для внутреннего страховочного лога, выводимого, когда ваш собственный onError/репортер сам выбрасывает ошибку (см. примечание к <ErrorBoundary> — то же значение по умолчанию, та же логика, хотя здесь нет риска конфликта имён, поскольку это обычный composable, а не компонент с собственным emit reset). Передайте '', чтобы убрать его.

Возвращаемое значение

captureError

(err: unknown, info?: CaptureErrorInfo) => CapturedError

Регистрирует ошибку вручную; возвращает получившийся CapturedError.

reset

() => void

Сбрасывает error обратно в null.

error

ShallowRef<CapturedError | null>

hasError

ComputedRef<boolean>