errors para Go: guía completa con ejemplos prácticos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Librería errors para Go: guía completa para un manejo de errores avanzado

1. ¿Qué es y por qué usarla?

La librería errors es el paquete estándar del lenguaje Go que proporciona funciones básicas para crear, formatear y manejar errores. A diferencia de otros lenguajes que usan excepciones como mecanismo principal, Go emplea la devolución explícita de valores de error desde las funciones. Esto hace que el flujo del programa sea más predecible y controlable.

Su función principal es ofrecer una forma simple y eficiente de crear nuevos errores, comparar sus tipos y añadir información contextual (como "envolver" errores). En Go, un error es simplemente la interfaz error, que cualquier tipo puede implementar con el método Error() string. Esto brinda una gran flexibilidad: puedes crear tus propios tipos de error con campos adicionales (código de error, datos de la solicitud, etc.).

¿Por qué es necesaria? Sin ella, es imposible escribir una aplicación Go robusta. Cada vez que una función puede fallar (trabajo con archivos, red, base de datos), devuelve un error. Ignorar errores (asignarlos a la variable _) se considera una mala práctica. La librería errors no solo te permite informar qué salió mal, sino también construir una cadena de errores para saber exactamente en qué etapa ocurrió la falla durante la depuración.

2. Instalación

El paquete errors forma parte de la librería estándar de Go. Esto significa que no requiere ninguna instalación adicional. Está disponible "de fábrica" al instalar cualquier SDK de Go. Para usarlo, solo necesitas importarlo en tu código:

import "errors"

Si usas Go Modules (el estándar desde Go 1.11+), el paquete estará disponible automáticamente. No es necesario ejecutar ningún comando go get para la librería estándar.

Importante: También existe una popular librería de terceros llamada github.com/pkg/errors que ofrece funcionalidades avanzadas (trazas de pila, formato). Sin embargo, este artículo se centra exclusivamente en el paquete estándar errors, que es la base para cualquier manejo de errores en Go.

3. Inicio rápido

Ejemplo mínimo funcional para crear y manejar un error:

package main

import (
    "errors"
    "fmt"
)

// Función que divide dos números. Si el divisor es cero, devuelve un error.
func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("no se puede dividir por cero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Resultado:", result)
    }

    // Probamos con un error
    result2, err2 := divide(10, 0)
    if err2 != nil {
        fmt.Println("Error:", err2) // Salida: Error: no se puede dividir por cero
    } else {
        fmt.Println("Resultado:", result2)
    }
}

En este ejemplo, creamos un error simple con errors.New() y verificamos su existencia de la forma estándar: if err != nil.

4. Funciones y métodos principales

A continuación, se presentan las 8 funciones/métodos clave del paquete errors con descripciones detalladas y ejemplos.

4.1 errors.New(text string) error

Firma: func New(text string) error

Qué hace: Crea un nuevo error con el texto especificado.

Recommendations