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

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

<tip>

`<NuxtErrorBoundary>` 在底层使用了 Vue 的 [`onErrorCaptured`](https://vue.zhcndoc.com/api/composition-api-lifecycle#onerrorcaptured) 钩子。

</tip>

## 事件

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

## 插槽

- `#error`：指定在发生错误时显示的回退内容。```vue [app/app.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/4.x/getting-started/error-handling">



</read-more>

## 示例

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

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

```vue [app/app.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.
