Menu
Coddy logo textTech

Creación de errores simples

Parte de la sección Fundamentos del Journey de GO de Coddy — lección 106 de 109.

En Go, puedes crear errores personalizados usando la función errors.New() de la biblioteca estándar.

Importa el paquete errors:

import (
    "errors"
    "fmt"
)

Crea un error simple con un mensaje:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

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

La salida será:

Error: cannot divide by zero
challenge icon

Desafío

Principiante

En este desafío, practicarás la creación de un error simple en Go usando la función errors.New().

Tienes una función que comprueba si un nombre de usuario es válido. Un nombre de usuario se considera válido si tiene al menos 5 caracteres. Tu tarea es completar la función devolviendo un error apropiado cuando el nombre de usuario es demasiado corto.

Hoja de referencia

Crea errores personalizados usando errors.New() de la biblioteca estándar:

import (
    "errors"
    "fmt"
)

Devuelve un error desde una función:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Maneja el error:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

Pruébalo tú mismo

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Probar con un nombre de usuario válido
	result, err := validateUsername("gopher123")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}

	// Probar con un nombre de usuario no válido
	result, err = validateUsername("go")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}
}

func validateUsername(username string) (string, error) {
	if len(username) < 5 {
		// TODO: Devolver un error con el mensaje "username must be at least 5 characters long"
		// Sugerencia: Usar errors.New() para crear un nuevo error
		return "", nil // Reemplazar esta línea
	}
	return "Username is valid", nil
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos