createError()
Creates a Nuxt/H3 error object you can throw to trigger error handling.
Syntax
throw createError(input) Parameters
| Name | Type | Required | Description |
|---|---|---|---|
input | string | { statusCode, statusMessage, message, data, fatal } | Yes | A message string or an object with `statusCode`, `statusMessage`, `message`, `data`, and `fatal`. |
Returns
NuxtError — An error object suitable for throwing.
Examples
<script setup lang="ts">
const { data } = await useFetch('/api/post')
if (!data.value) {
throw createError({
statusCode: 404,
statusMessage: 'Post not found',
fatal: true,
})
}
</script>
// server/api/user.ts
export default defineEventHandler((event) => {
if (!isAuthed(event)) {
throw createError({ statusCode: 401, statusMessage: 'Unauthorized' })
}
})
Notes
In pages/components, set `fatal: true` to render the full-screen
`error.vue` page; otherwise the error is non-fatal and handled by a
nearby `<NuxtErrorBoundary>`. In server routes the `statusCode` sets
the HTTP response status. `data` is serialized to the client.