Pular para o conteúdo principal

Wrapping e unwrapping com errors.Is e errors.As

Wrapping

  • Permite adicionar contexto a um erro, mantendo o erro original
  • Usado com o operador %w em fmt.Errorf

Exemplo

Carregando editor interativo...

errors.Is

  • Verifica se um erro (ou seus erros encapsulados) corresponde a um erro específico.

Exemplo

Carregando editor interativo...

errors.As

  • Extrai um erro de um tipo específico de uma cadeia de erros encapsulados.

Exemplo

Carregando editor interativo...

Comparação com Java

  • Wrapping em Go é semelhante a Exception.getCause() em Java, mas mais explícito.
  • errors.Is e errors.As substituem verificações como instanceof ou comparações de tipos de exceção.
Caso de uso

Wrapping é útil em APIs para adicionar contexto (ex: ID da requisição) sem perder o erro original.