English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go no tiene un try como en Java / catch tales excepciones, no podemos lanzar excepciones en Go.
Go utiliza otro mecanismo, conocido comoMecanismo de pánico diferido y recuperación
Go maneja errores simples en funciones y métodos devolviendo un objeto de error. El objeto de error puede ser el único o el último valor de retorno. Si no hay errores en la función, el objeto de error es nil.
Siempre verifiquemos los errores en la declaración de llamada, ya sea que recibamos o no un error.
Nunca ignoremos los errores, ya que pueden causar que el programa se bloquee.
El método que Go utiliza para detectar y reportar errores es
Las funciones que pueden causar errores devolverán dos variables: un valor y un código de error, si tiene éxito, nil; si hay condiciones de error, != nil.
Verifique los errores después de la llamada a la función. Si ocurre un error (if error != nil), detenga la ejecución de la función real (o todo el programa si es necesario).
Go tiene un tipo de interfaz de error predefinido
type error interface { Error() string }
Podemos usar la función error.New del paquete de errores para definir tipos de errores y proporcionar mensajes de error adecuados, por ejemplo:
err := errors.New("math - raíz cuadrada de número negativo")
package main import "errors" import "fmt" import "math" func Sqrt(value float64) (float64, error) { if (value < 0) { return 0, errors.New("Math: raíz cuadrada de número negativo") } return math.Sqrt(value), nil } func main() { result, err := Sqrt(-64) if err != nil { fmt.Println(err) } else { fmt.Println(result) } result, err = Sqrt(64) if err != nil { fmt.Println(err) } else { fmt.Println(result) } }
Salida:
Matemáticas: raíz cuadrada de números negativos 8