Errores

10. Errores#

Si bien Go no implementa excepciones como una construcción propia del lenguaje, es posible hacer un control de errores por medio del módulo errors.

Por eso, en Go es común que los errores sean devueltos “normalmente” desde una función y quien invocó dicha función es responsable de manejar un posible error.

import (
    "errors"
    "fmt"
)

func test(input int) error {
    if input < 0 {
        return errors.New("less than zero")
    }
    return nil
}

func main() {
    err := test(-1)
    if err != nil {
        fmt.Print(err)
    }
}

En este ejemplo, podemos observar la forma típica en la que se maneja un error en Go. Van a encontrar if err != nil en multiples lugares de un programa de Go.

Go tiene una forma de “lanzar” errores por medio de la función panic, pero esta debería ser reservada para casos muy extremos, ya que no es posible recuperar el programa luego de esa invocación.