Go Errors

Go Errors

¿Cómo manejar los errores en Go?

Go utilizar como concepto de error cualquier devolución a través de alguna implementación de la interfaz “error” provista por el lenguaje

type error interface {
      Error() string
}

Para usar esta interfaz y devolver un error puedes utilizar una implementación ya provista por Go sobre esta interfaz haciendo uso de la función errors.New() del paquete errors.

Una vez creado error lo retornas y luego evaluas si es no es nulo.

Por convención el error es el último valor retornado si devuelves más de un valor.

package main

import (
    "fmt"
    "errors"
)

func addTwo(value int) (int, error) {
    if (value < 0) {
        // business rules .. I can not work with negatives
        return value, errors.New(fmt.Sprintf("something went wrong value is %d:", value))
    } else {
        return value + 2, nil
    }
}

func main() {

    v, err := addTwo(-1);
    if err != nil {
        // do something with this error
        fmt.Print(err)
    } else {
        fmt.Print(v)
    }

}


El resultado de este código es

$ go run errors.go
something went wrong value is -1:

go  golang