Manejo de errores

¿Qué son los errores ?

Todo software contiene o contendrá en algun punto errores. Para el manejo de estos, algunos lenguajes utilizan excepciones, sin embargo Go utiliza un enfoque distinto ya que estos representan un tipo. Esto quiere decir que pueden ser enviados a través de funciones y métodos.

El manejo de errores adecuado es importante para llevar a cabo una programación adecuada, en la que se pueda confiar, y un código fuente que se pueda mantener. Si se escriben librerías para el uso de terceros, el manejo de errores de forma correcta promueve la confianza de estos.

Cuando se invoca un método o función que pueda generar un error, Go retorna este error como último parámetro posible. Lo que implica que ningun error será generado si la función no genera una excepción.

Ejemplo… se desea leer el contenido de un archivo de texto, si existe un error dicho error sera desplegado.

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    texto, err := ioutil.ReadFile("archivo.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(texto)
}

Como podemos notar utilizamos ioutil.ReadFile para intentar leer el archivo. Esta regresa 2 posibles parámetros, texto y err.

texto, err := ioutil.ReadFile("archivo.txt")

Acto seguido verificamos si la variable err es diferente de nil y si es así imprimimos el error (esta es una convención en Go).

if err != nil {
    fmt.Println(err)
    return
}

Finalmente si el archivo se pudo leer, imprimimos el contenido de este.

fmt.Println(texto)

Como el archivo no existe, el error se imprimirá como salida.

open archivo.txt: no such file or directory