---
title: "<NuxtErrorBoundary>"
description: "<NuxtErrorBoundary> 组件处理其默认插槽中发生的客户端错误。"
canonical_url: "https://nuxt.zhcndoc.com/docs/3.x/api/components/nuxt-error-boundary"
---
# \<NuxtErrorBoundary>

> \<NuxtErrorBoundary> 组件处理其默认插槽中发生的客户端错误。

::tip
`<NuxtErrorBoundary>` 在内部使用了 Vue 的 [`onErrorCaptured`](https://vuejs.org/api/composition-api-lifecycle#onerrorcaptured) 钩子。
::

## 事件

- `@error`：当组件的默认插槽抛出错误时触发的事件。
  ```vue
  <template>
    <NuxtErrorBoundary @error="logSomeError">
      <!-- ... -->
    </NuxtErrorBoundary>
  </template>
  ```

## 插槽

- `#error`：指定发生错误时显示的备用内容。
  ```vue
  <template>
    <NuxtErrorBoundary>
      <!-- ... -->
      <template #error="{ error, clearError }">
        <p>发生了一个错误: {{ error }}</p>

        <button @click="clearError">清除错误</button>
      </template>
    </NuxtErrorBoundary>
  </template>
  ```

::read-more{to="https://nuxt.zhcndoc.com/docs/3.x/getting-started/error-handling"}
::

## 示例

### 在脚本中访问 `error` 和 `clearError`

你可以在组件的脚本中如下访问 `error` 和 `clearError` 属性：

```vue
<template>
  <NuxtErrorBoundary ref="errorBoundary">
    <!-- ... -->
  </NuxtErrorBoundary>
</template>

<script setup lang="ts">
const errorBoundary = useTemplateRef('errorBoundary')

// errorBoundary.value?.error
// errorBoundary.value?.clearError()
</script>
```

---

- [源码](https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/app/components/nuxt-error-boundary.vue)


## Sitemap

See the full [sitemap](https://nuxt.zhcndoc.com/sitemap.md) for all pages.
