Capturando exceções nas Seções

Version: 1.54.0

Limitador de Erros

Visão Geral

Captura e tratamento de erro é um conceito poderoso disponível desde a versão 1.54.0, que permite lidar com erros que ocorrem durante a renderização de componentes. Eles permitem que você lide elegantemente com erros e evite que toda a aplicação seja interrompida devido a um erro não tratado.

Na deco, criar um limite de erro é tão simples como exportar uma função de componente chamada ErrorFallback que recebe um objeto com uma propriedade: error. A propriedade error armazena o objeto de erro que foi lançado pelo componente.

Os pré-requisitos para fazer o seu componente funcionar com tratamento de erro são ter as seguintes dependências nas versões iguais ou superiores às abaixo:

{
  "imports": {
    "deco/": "https://denopkg.com/deco-cx/[email protected]/",
    "$fresh/": "https://denopkg.com/deco-cx/[email protected]/",
    "preact": "https://esm.sh/[email protected]",
    "preact/": "https://esm.sh/[email protected]/",
    "preact-render-to-string": "https://esm.sh/*[email protected]",
    "@preact/signals": "https://esm.sh/*@preact/[email protected]",
    "@preact/signals-core": "https://esm.sh/@preact/[email protected]"
  }
}

Exemplo: Criando um Limitador de Exceção

Para criar um limite de erro, você pode seguir estes passos:

  • Escolha a Seção selecionada (por exemplo, ProductShelf.tsx)
  • Exporte uma função chamada ErrorFallback, a função deve receber um objeto com uma propriedade: error.
// ProductShelf.tsx
export interface Props {
    myProp: string;
}

export function ErrorFallback({ error }: { error?: Error }) {
  // Sua lógica de tratamento de erro vai aqui
  // Você pode exibir uma mensagem de erro, registrar o erro ou renderizar uma interface de substituição
  return (
    <div>
      <h2>Oops! Algo deu errado.</h2>
      <p>{error.message}</p>
    </div>
  );
}

export default function ProductShelf(props: Props) {
    ...
}

Se ocorrer um erro durante a renderização de ProductShelf, o componente ErrorFallback sera renderizado no lugar de ProductShelf

Lembre-se de usar os limites de erro com cuidado e envolver apenas os componentes propensos a erros. Usar os limites de erro de forma eficaz pode melhorar muito a estabilidade e a experiência do usuário em suas aplicações. Caso nao haja nenhum ErrorFallback definido, um fallback padrao será utilizado

Was this page helpful?
Can't find what you're looking for? Spot an error in the documentation? Get in touch with us on our Community Forum
Continue reading