Go · Intermediário · Inglês · Técnico
errors.Is
Função que percorre a cadeia de erros embrulhados e diz se algum deles é igual a um erro alvo, normalmente um erro sentinela como io.EOF.
Onde usar
Substitui err == alvo, que falha assim que o erro é embrulhado com %w. Também respeita um método Is personalizado nos tipos de erro.
Em código
err := fmt.Errorf("ler: %w", io.EOF)
fmt.Println(err == io.EOF) // false
fmt.Println(errors.Is(err, io.EOF)) // trueExemplos
Use errors.Is to check for io.EOF, not the double equals.
Use errors.Is para checar io.EOF, não o igual duplo.
Errors.Is still finds the error after two layers of wrapping.
O errors.Is ainda acha o erro depois de duas camadas de wrapping.
Cuidado
Não compare com == quando o erro pode ter sido embrulhado em camadas intermediárias; a comparação direta falha em silêncio.
Antônimos
errors.As