ExpertiDict

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

erro sentinela

/ˈe.ʁu sẽ.t͡ʃiˈnɛ.la/substantivo

Erro predefinido em variável de pacote, como io.EOF ou sql.ErrNoRows, criado com errors.New e comparado pelos chamadores para identificar uma situação específica.

Onde usar

Permite ao chamador reagir a casos esperados, como fim de arquivo ou registro inexistente, sem inspecionar texto. Por convenção, o nome começa com Err.

Em código

var ErrSaldo = errors.New("sem saldo")

func Sacar(s, v int) (int, error) {
  if v > s { return s, ErrSaldo }
  return s - v, nil
}

Exemplos

O repositório devolve ErrNaoEncontrado, um erro sentinela do pacote.

Use errors.Is para comparar com o erro sentinela, mesmo embrulhado.

Cuidado

Cada sentinela exportada vira parte da API pública e prende os chamadores; compare sempre com errors.Is, não com ==.

Sinônimos

sentinel error

Veja também

Todos os termos de Go