¿Cómo se gestionan las excepciones y errores en su aplicación?
sobes.tech AI
Respuesta de la IA
En Go, la gestión de errores difiere de muchos otros lenguajes, ya que aquí no hay excepciones en el sentido habitual. En su lugar, las funciones generalmente devuelven un valor de error (error) como segundo resultado.
Enfoques principales:
-
Verificación de errores después de llamar a una función:
result, err := someFunction() if err != nil { // manejo del error log.Println("Error:", err) return err } // continuar con el trabajo con result -
Creación de tipos de errores propios usando
errors.Newofmt.Errorfpara mensajes más informativos. -
Pánicos (
panic) y recuperación (recover) se usan raramente, principalmente para errores críticos que no deberían ocurrir en el flujo normal. -
Registro de errores y devolverlos hacia arriba en la pila para un manejo centralizado.
Ejemplo de manejo de errores:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("división por cero")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Resultado:", result)
}
De esta forma, en Go los errores se manejan explícitamente, lo que aumenta la legibilidad y la fiabilidad del código.