Iniciante Fundamentos

Tratamento de erros

Em Go, erros são valores comuns do tipo error. Não há exceções: você retorna e verifica o erro.

Retornando um erro

Por convenção, o erro é o último valor de retorno:

import (
	"errors"
	"fmt"
)

func dividir(a, b int) (int, error) {
	if b == 0 {
		return 0, errors.New("divisão por zero")
	}
	return a / b, nil
}

Quando dá tudo certo, o erro é nil.

Verificando o erro

O padrão mais comum em Go é checar logo após a chamada:

func main() {
	resultado, err := dividir(10, 0)
	if err != nil {
		fmt.Println("Erro:", err)
		return
	}
	fmt.Println("Resultado:", resultado)
}

Criando erros

err := errors.New("algo deu errado")

Com valores formatados, use fmt.Errorf:

nome := "config.txt"
err := fmt.Errorf("arquivo %s não encontrado", nome)

Resumo

  • Erros são valores do tipo error, retornados por último.
  • nil significa que não houve erro.
  • Sempre verifique com if err != nil.