ExpertiDict

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

errors.Is

/ˈɛɹ.ɚz ɪz/função

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)) // true

Exemplos

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

Veja também

Todos os termos de Go