Bibliothèque errors pour Go : guide complet pour une gestion d'erreurs améliorée
1. Qu'est-ce que c'est et pourquoi l'utiliser ?
La bibliothèque errors est le package standard du langage Go, fournissant les fonctions de base pour créer, formater et gérer les erreurs. Contrairement à de nombreux autres langages où les exceptions sont le mécanisme principal de gestion des erreurs, Go utilise un retour explicite de valeurs d'erreur depuis les fonctions. Cela rend le flux d'exécution du programme plus prévisible et contrôlable.
L'objectif principal de cette bibliothèque est de fournir un moyen simple et efficace de créer de nouvelles erreurs, de comparer leurs types et d'ajouter des informations contextuelles (par exemple, "encapsuler" les erreurs). En Go, une erreur est simplement une interface error, que tout type implémente avec une méthode Error() string. Cela offre une flexibilité énorme : vous pouvez créer vos propres types d'erreurs avec des champs supplémentaires (code d'erreur, données de requête, etc.).
Pourquoi est-ce indispensable ? Sans elle, il est impossible d'écrire une application Go fiable. Chaque fois qu'une fonction peut échouer (travail avec des fichiers, réseau, base de données), elle retourne une erreur. Ignorer les erreurs (en les assignant à la variable _) est considéré comme une mauvaise pratique. La bibliothèque errors permet non seulement de signaler ce qui n'a pas fonctionné, mais aussi de construire une chaîne d'erreurs, afin de savoir précisément, lors du débogage, à quelle étape la panne s'est produite.
2. Installation
Le package errors fait partie de la bibliothèque standard de Go. Cela signifie qu'aucune installation supplémentaire n'est requise. Il est disponible "prêt à l'emploi" dès l'installation de n'importe quel SDK Go. Pour l'utiliser, il suffit de l'importer dans votre code :
import "errors"
Si vous utilisez Go Modules (la norme depuis Go 1.11+), le package sera automatiquement disponible. Aucune commande go get n'est nécessaire pour la bibliothèque standard.
Important : Il existe également une bibliothèque tierce populaire github.com/pkg/errors, qui offre des fonctionnalités avancées (piles d'appels, formatage). Cependant, cet article se concentre exclusivement sur le package standard errors, qui est la base de toute gestion d'erreurs en Go.
3. Démarrage rapide
Un exemple minimal de création et de gestion d'une erreur :
package main
import (
"errors"
"fmt"
)
// Fonction qui divise deux nombres. Si le diviseur est zéro, retourne une erreur.
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division par zéro impossible")
}
return a / b, nil
}
func main() {
result, err := divide(10, 2)
if err != nil {
fmt.Println("Erreur :", err)
} else {
fmt.Println("Résultat :", result)
}
// Essayons avec une erreur
result2, err2 := divide(10, 0)
if err2 != nil {
fmt.Println("Erreur :", err2) // Affiche : Erreur : division par zéro impossible
} else {
fmt.Println("Résultat :", result2)
}
}
Dans cet exemple, nous avons créé une erreur simple avec errors.New() et vérifié sa présence de manière standard avec if err != nil.
4. Fonctions et méthodes principales
Voici les 8 fonctions/méthodes clés du package errors avec une description détaillée et des exemples.
4.1 errors.New(text string) error
Signature : func New(text string) error
Ce qu'elle fait : Crée une nouvelle erreur avec le texte spécifié.
Aussi dans la bibliothèque
Envoi d'email en JavaScript (Node.js) : nodemailer, sendgrid, mailgun
Planificateur de tâches sur Node.js : node-schedule et node-cron
Intégration des métriques Prometheus en Java : bibliothèque simpleclient