Menu
Coddy logo textTech

Création d'erreurs simples

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 106 sur 109.

En Go, vous pouvez créer des erreurs personnalisées en utilisant la fonction errors.New() de la bibliothèque standard.

Importez le package errors :

import (
    "errors"
    "fmt"
)

Créez une erreur simple avec un message :

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 sortie sera :

Error: cannot divide by zero
challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à créer une erreur simple en Go en utilisant la fonction errors.New().

Vous avez une fonction qui vérifie si un nom d'utilisateur est valide. Un nom d'utilisateur est considéré comme valide s'il contient au moins 5 caractères. Votre tâche consiste à compléter la fonction en renvoyant une erreur appropriée lorsque le nom d'utilisateur est trop court.

Aide-mémoire

Créez des erreurs personnalisées en utilisant errors.New() de la bibliothèque standard :

import (
    "errors"
    "fmt"
)

Retourner une erreur depuis une fonction :

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

Gérer l'erreur :

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

Essayez vous-même

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Tester avec un nom d'utilisateur valide
	result, err := validateUsername("gopher123")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}

	// Tester avec un nom d'utilisateur invalide
	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: Retourner une erreur avec le message "username must be at least 5 characters long"
		// Astuce : Utilisez errors.New() pour créer une nouvelle erreur
		return "", nil // Remplacer cette ligne
	}
	return "Username is valid", nil
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux