Vérification des erreurs
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 105 sur 109.
En Go, nous vérifions les erreurs en utilisant des instructions if. Ce modèle est extrêmement courant.
Vérifiez si une erreur s'est produite en utilisant if err != nil :
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Arrêter l'exécution s'il y a une erreur
}
// Continuer seulement s'il n'y a pas d'erreur
fmt.Println("Result:", result)
}La sortie sera :
Error occurred: cannot divide by zeroDéfi
DébutantEn Go, les fonctions retournent souvent une valeur d'erreur que vous devez vérifier avant d'utiliser le résultat. Dans ce défi, vous allez vous entraîner à vérifier les erreurs en utilisant l'instruction if.
Nous avons une fonction appelée openFile qui simule l'ouverture d'un fichier et retourne une erreur si le fichier n'existe pas. Votre tâche consiste à vérifier s'il y a une erreur et à afficher un message approprié.
Aide-mémoire
Vérifiez les erreurs en utilisant if err != nil :
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // Arrête l'exécution s'il y a une erreur
}
// Continue seulement s'il n'y a pas d'erreur
fmt.Println("Result:", result)Essayez vous-même
package main
import (
"fmt"
)
// Cette fonction simule l'ouverture d'un fichier
// Elle retourne une erreur si le fichier n'existe pas
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil signifie aucune erreur
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// Appeler la fonction openFile
err := openFile(filename)
// TODO: Vérifier si err n'est pas nil (ce qui signifie qu'il y a eu une erreur)
// S'il y a eu une erreur, afficher : "Error: " suivi du message d'erreur
// S'il n'y a pas eu d'erreur, afficher : "File opened successfully"
}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
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques14Gestion de base des erreurs
Le concept d'erreurL'interface `error`Fonctions retournant des erreursVérification des erreursCréation d'erreurs simplesCréation d'erreurs formatéesGestion de base des erreursRécapitulatif - Gérer les problèmes3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur