nuxt logo

Tradução da Documentação (Não Oficial)

createError

Crie um objeto de erro com metadados adicionais.

Você pode usar esta função para criar um objeto de erro com metadados adicionais. Ela pode ser usada tanto nas partes Vue quanto Nitro do seu aplicativo, e é destinada a ser lançada.

Parâmetros

  • err: string | { cause, data, message, name, stack, statusCode, statusMessage, fatal }

Você pode passar uma string ou um objeto para a função createError. Se você passar uma string, ela será usada como a message do erro, e o statusCode será por padrão 500. Se você passar um objeto, pode definir várias propriedades do erro, como statusCode, message e outras propriedades de erro.

No App Vue

Se você lançar um erro criado com createError:

  • no lado do servidor, ele acionará uma página de erro em tela cheia que você pode limpar com clearError.
  • no lado do cliente, ele lançará um erro não fatal para você lidar. Se você precisar acionar uma página de erro em tela cheia, pode fazer isso definindo fatal: true.

Exemplo

pages/movies/[slug\
const route = useRoute()
const { data } = await useFetch(`/api/movies/${route.params.slug}`)
if (!data.value) {
  throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })
}

Em Rotas de API

Use createError para acionar o tratamento de erros em rotas de API do servidor.

Exemplo

server/api/error.ts
export default eventHandler(() => {
  throw createError({
    statusCode: 404,
    statusMessage: 'Page Not Found'
  })
})

Nas rotas de API, é recomendado usar createError passando um objeto com um statusMessage curto porque ele pode ser acessado no lado do cliente. Caso contrário, uma message passada para createError em uma rota de API não será propagada para o cliente. Alternativamente, você pode usar a propriedade data para passar dados de volta para o cliente. Em qualquer caso, sempre considere evitar colocar entradas dinâmicas do usuário na mensagem para evitar possíveis problemas de segurança.

Veja também getting-started > error-handling