Menu
Coddy logo textTech

Création d'erreurs formatées

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

Créer des erreurs formatées... vous permet d'inclure des valeurs dynamiques dans les messages d'erreur.

La fonction fmt.Errorf() crée des erreurs avec des chaînes formatées, de manière similaire à fmt.Printf() :

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide %d by zero", a)
    }
    return a / b, nil
}

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

Le résultat sera :

Error: cannot divide 10 by zero
challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à créer des messages d'erreur formatés en utilisant la fonction fmt.Errorf. Vous avez un programme qui valide un nom d'utilisateur, et vous devez créer un message d'erreur approprié lorsque le nom d'utilisateur est invalide.

Le programme a un nom d'utilisateur prédéfini qui est trop court (moins de 5 caractères). Votre tâche consiste à créer un message d'erreur formaté qui inclut le nom d'utilisateur invalide et la longueur minimale requise.

Aide-mémoire

Utilisez fmt.Errorf() pour créer des messages d'erreur formatés avec des valeurs dynamiques :

import "fmt"

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide %d by zero", a)
    }
    return a / b, nil
}

Essayez vous-même

package main

import (
	"fmt"
)

func main() {
	// Nom d'utilisateur prédéfini qui est trop court
	username := "bob"
	// Longueur minimale requise
	minLength := 5
	
	// Vérifier si le nom d'utilisateur est valide
	if len(username) < minLength {
		// TODO: Créer une erreur formatée en utilisant fmt.Errorf qui inclut :
		// 1. Le nom d'utilisateur invalide
		// 2. La longueur minimale requise
		// Exemple de format : "invalid username: [username] is too short, minimum length is [minLength]"
		err := // Votre code ici
		
		// Afficher l'erreur
		fmt.Println(err)
	} else {
		fmt.Println("Username is valid!")
	}
}
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