Erros e Tratamento de erros
Erros
Definição
Não existe o bloco try-catch.
O error é tratado logo após a chamada de um método/função, caso o mesmo tenha como retorno um error.
OBS: Por convenção, o nome dado a uma variável que armazena um erro é err
Exemplo
func main() {
result, err := soma(7, 2)
if err != nil {
log.Fatal(err.Error())
}
fmt.Println(result)
}
func soma(x int, y int) (int, error) {
result := x + y
if result > 10 {
return 0, errors.New("total maior que 10")
}
return result, nil
}Tratamento de um erro
Definição
O tratamento de um erro é feita a partir da verificação da variável err. Caso err não esteja vazia (nil) é porque foi retornado um erro de uma função/método.
Exemplo
if err != nil {
// Tratamento do erro
}Ignorar um erro
Definição
Usa-se o blank identifier (_, underline) para ignorar um erro, ou seja, não tratá-lo.
Exemplo
func main() {
result, _ := soma(7, 2)
fmt.Println(result)
}
func soma(x int, y int) (int, error) {
result := x + y
if result > 10 {
return 0, errors.New("total maior que 10")
}
return result, nil
}