Publicado em: 16/08/2023

Dominando o Tratamento de Erros com Next.js Error Handling e React Error Boundary!


Vamos explorar o conceito de Error Boundary no Next.js, uma técnica essencial para lidar com erros de renderização na interface do usuário de forma elegante e controlada.

O que é Error Boundary?

Error Boundary, ou "limite de erro" em português, é um conceito que permite definir fronteiras na aplicação onde erros de renderização serão capturados e tratados por componentes específicos. Diferente de erros de servidor ou de banco de dados, esses são especificamente erros que ocorrem durante a construção da interface visual.

Quando um componente dentro de um Error Boundary falha, em vez de quebrar toda a aplicação, exibimos uma interface alternativa com mensagens amigáveis e opções de recuperação.

Implementação Prática

No Next.js, criamos um arquivo especial chamado error.tsx que atua como nosso componente de tratamento de erros. Este arquivo deve ser um Client Component e exportar uma função que recebe dois parâmetros importantes:

1export function Error({ error, reset }: {
2  error: Error;
3  reset: () => void;
4}) {
5  return (
6    <div>
7      <h3>Algo deu errado.</h3>
8      <button onClick={reset}>Tentar novamente</button>
9    </div>
10  );
11}

O parâmetro error contém informações sobre o que falhou, enquanto reset fornece uma função para tentar recarregar o componente problemático.

Hierarquia de Tratamento

Uma das vantagens desse sistema é a possibilidade de criar múltiplos níveis de tratamento:

  • Podemos ter um Error Boundary específico para uma seção de detalhes
  • Outro para a área de usuário
  • E um global como fallback para erros não tratados

Isso permite granularidade no tratamento, mostrando mensagens e interfaces de erro contextualizadas para cada parte da aplicação.

Boas Práticas

Além de exibir mensagens amigáveis, é importante:

  1. Registrar os erros em serviços de monitoramento
  2. Fornecer ações claras para o usuário (como tentar novamente)
  3. Manter o estilo consistente com o restante da aplicação
  4. Não expor detalhes técnicos sensíveis em produção

Considerações Finais

O tratamento adequado de erros na interface é fundamental para a experiência do usuário e a percepção de qualidade da aplicação. Com Error Boundaries no Next.js:

  • Evitamos telas brancas ou interfaces quebradas
  • Damos controle ao usuário sobre como proceder
  • Facilitamos a identificação e correção de problemas
  • Criamos resiliência na aplicação

Lembre-se que este é apenas um dos tipos de tratamento de erro que sua aplicação precisa. Em um sistema completo, você deve combinar esta técnica com tratamento de erros de API, validações de formulário e outros mecanismos específicos para cada camada da aplicação.

Para aprofundar, recomendo explorar também como personalizar diferentes tipos de erros (404, 500, etc.) e como integrar seu Error Boundary com ferramentas de observabilidade como Sentry ou LogRocket.

Fernando Cunha
Artigo deFernando Cunha

Com mais de 15 anos de experiência em tecnologia e formado pela FAAP em Administração de empresas, hoje é o CEO da Mestres da Web, empresa referência no mercado nacional e com projeções de expansão internacional.

últimos vídeos

veja nossos vídeos mais recentes e esteja por dentro de muitas novidades.

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN
play

Au 02 - Front-end - React - Estrutura de projeto - Mestres BEGIN

Explorando a estrutura gerada pelo Create React App, entendendo o papel das pastas public e src, os conceitos de Virtual DOM, JSX e componentes, além de como o CSS é aplicado nos projetos React.

Autor deste artigo
Fernando Cunha17/03/2025
Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN
play

Au 03 - Front-end - React - Criando layout da nossa aplicação - Mestres BEGIN

Explorando a criação de um layout fixo para a aplicação React, com barra lateral, barra superior e área dinâmica para conteúdo. Utilizando o React Router Dom v6 para gerenciar navegação entre rotas.

Autor deste artigo
Fernando Cunha17/03/2025
Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN
play

Au 04 - Front-end - React - Estilizando o layout da aplicação - Mestres BEGIN

Abordando técnicas para organizar estilos em React, utilizando seletores CSS, CSS Modules, integração com React Router, reset CSS eficiente e boas práticas para garantir consistência visual e manutenibilidade.

Autor deste artigo
Fernando Cunha17/03/2025