Senior
Comment gérez-vous les erreurs en Go dans une application prête pour la production?
sobes.tech IA
Réponse de l'IA
En Go, la gestion des erreurs repose sur une vérification explicite de la valeur retournée error après l'appel des fonctions. Dans les applications prêtes pour la production, il est important de :
- Vérifier toujours les erreurs immédiatement après l'appel d'une fonction.
- Utiliser des enveloppes d'erreurs (
fmt.Errorfavec%w) pour conserver le contexte. - Enregistrer les erreurs avec suffisamment de détails, y compris la pile d'appels si nécessaire.
- Pour les erreurs critiques, appliquer une stratégie de nouvelles tentatives ou de fallback.
- Dans les services HTTP, renvoyer des codes de statut corrects et des messages compréhensibles.
Exemple de gestion d'erreur avec enveloppe et journalisation :
package main
import (
"errors"
"fmt"
"log"
)
func doSomething() error {
return errors.New("erreur d'origine")
}
func main() {
err := doSomething()
if err != nil {
wrappedErr := fmt.Errorf("erreur dans doSomething : %w", err)
log.Printf("Une erreur est survenue : %v", wrappedErr)
// Traitement supplémentaire, par exemple, retourner l'erreur plus haut
}
}