ExpertiDict

Go · Intermediário · Inglês · Técnico

error wrapping

/ˈɛɹ.ɚ ˈɹæp.ɪŋ/substantivo

Técnica de embrulhar um erro dentro de outro, acrescentando contexto, com fmt.Errorf e o verbo %w. O erro original continua acessível por errors.Unwrap, Is e As.

Onde usar

Em cada camada, acrescente o que estava sendo feito, como lendo config, e preserve a causa. Assim os logs contam a história sem perder a checagem de tipo.

Em código

_, err := os.Open("cfg.json")
if err != nil {
  return fmt.Errorf("lendo config: %w", err)
}
// errors.Is(err, fs.ErrNotExist) -> true

Exemplos

Wrap the error with %w so callers can still inspect it.

Embrulhe o erro com %w para os chamadores ainda poderem inspecioná-lo.

Each layer adds context through error wrapping.

Cada camada acrescenta contexto por meio de error wrapping.

Cuidado

Usar %v em vez de %w perde a ligação com o erro original, e errors.Is e errors.As deixam de encontrá-lo.

Sinônimos

embrulhar erro

Veja também

Todos os termos de Go