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
}