šŸ„‡ Errores en funciones.

Go no soporta excepciones, por lo que las funciones retornan errores cuando sucede algo inesperado. Por convenciĆ³n, los errores siempre se envian como el Ćŗltimo valor de la lista de valores retornados por una funciĆ³n.

Supongamos que deseamos habilitar un filtro para vender cervezas. Se puede vender cualquier cantidad, pero solo a personas que tengan 18 aƱos o mas.

Creamos nuestra funciĆ³n.

func venderCerveza(edad int, cantidad int) (int, error) {
    if edad < 18 {
        err := fmt.Errorf("No se puede vender cerveza a menores")
        return 0, err
    }
    return cantidad, nil
}

La funciĆ³n venderCerveza recibe dos parĆ”metros, la edad de quien intenta comprar la cerveza, y la cantidad de cervezas que se le venden. Retorna 2 posibles valores, la cantidad de cervezas vendidas y un posible error.

venderCerveza(edad int, cantidad int) (int, error)

Comprobamos si la edad es menor a 18 aƱos.

edad < 18

Si es asi generamos no venderemos ninguna cerveza y retornaremos un error (ese tambĆ­en es el orden de los valores retornados).

err := fmt.Errorf("No se puede vender cerveza a menores")
return 0, err

Si por el contrario el usuario no es menor de 18 aƱos, la cantidad de cervezas vendidas es el numero solicitado y el error es nil.

return cantidad, nil

Para poder utilizar esta funciĆ³n necesitamos 2 variables, la cantidad a solicitar y un posible contenedor de errores.

var cantidad int
var err error

Primero verificamos si una persona de 15 aƱos puede comprar 6 cervezas.

cantidad, err = venderCerveza(15, 6)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println("Se vendieron", cantidad, "cervezas")
}

El resultado sera no satisfactorio, ya que los menores no son autorizados para comprar.

No se puede vender cerveza a menores

Despues verificamos una persona de 21 aƱos peude comprar 24 cervezas.

cantidad, err = venderCerveza(21, 24)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println("Se vendieron", cantidad, "cervezas")
}

El resultado sera satisfactorio, ya que una persona de 21 aƱos es mayor de edad.

Se vendieron 24 cervezas
Formateo de errores. InformaciĆ³n Ćŗtil dentro de errores.
comments powered by Disqus