Menu
Coddy logo textTech

La interfaz `error`

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

En Go, la interfaz error es un tipo incorporado que representa condiciones de error. Cualquier tipo que implemente el método Error() satisface esta interfaz.

Aquí está la definición de la interfaz error:

type error interface {
    Error() string
}

Crea un tipo de error personalizado:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err)
}

La salida será:

something went wrong
challenge icon

Desafío

Fácil

En este desafío, trabajarás con la interfaz error de Go. Necesitas crear un error personalizado usando la función errors.New() y luego verificar si existe un error.

El código ya tiene una función que devuelve un error. Tu tarea es verificar si el error no es nil e imprimir un mensaje apropiado.

Hoja de referencia

La interfaz error es un tipo integrado que representa condiciones de error. Cualquier tipo que implemente el método Error() satisface esta interfaz:

type error interface {
    Error() string
}

Crea un tipo de error personalizado:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err) // Salida: something went wrong
}

Usa errors.New() para crear errores simples y comprobar si un error no es nil.

Pruébalo tú mismo

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Esta función devuelve un error
	err := generateError()
	
	// TODO: Comprobar si err no es nil
	// Si err no es nil, imprime: "Error occurred: " seguido del mensaje de error
	// SUGERENCIA: Usa una sentencia if para comprobar si err != nil
	
	
	// Esta línea solo se ejecutará si no ocurrió ningún error
	fmt.Println("Program completed successfully")
}

// Esta función genera un error
func generateError() error {
	return errors.New("something went wrong")
}
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