
Gestion des erreurs
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Quelle est l'interface utilisée pour représenter les erreurs en Go ?
Quelle est l'interface utilisée pour représenter les erreurs en Go ?
Réponse
L'interface error est l'interface prédéfinie en Go pour représenter les conditions d'erreur. Elle contient une seule méthode Error() qui retourne une chaîne de caractères décrivant l'erreur. La valeur nil représente l'absence d'erreur. C'est l'interface conventionnelle utilisée par tous les packages de la bibliothèque standard et par les développeurs Go pour signaler et propager les erreurs.
2Comment créer une erreur simple avec un message statique en Go ?
Comment créer une erreur simple avec un message statique en Go ?
Réponse
La fonction errors.New() du package errors permet de créer une erreur simple avec un message statique. Elle retourne un type error qui implémente l'interface error avec le message fourni. Cette approche est recommandée pour créer des erreurs sentinel (erreurs prédéfinies comme os.ErrNotExist) ou des erreurs simples sans contexte dynamique. Pour des messages dynamiques, utiliser fmt.Errorf().
3Quelle fonction permet de créer une erreur avec un message formaté dynamiquement ?
Quelle fonction permet de créer une erreur avec un message formaté dynamiquement ?
Réponse
La fonction fmt.Errorf() permet de créer une erreur avec un message formaté dynamiquement en utilisant les verbes de formatage (comme %s, %d, %v). Elle supporte également le verbe spécial %w pour wrapper une erreur existante, préservant ainsi la chaîne d'erreurs pour l'inspection ultérieure. C'est la méthode recommandée pour ajouter du contexte aux erreurs tout en conservant l'erreur originale.
Quel verbe de formatage permet de wrapper une erreur avec fmt.Errorf() ?
Quelle fonction permet de vérifier si une erreur wrappée correspond à une erreur spécifique ?
+17 questions d'entretien
Autres sujets d'entretien Go
Les bases de Go
Structures de données Go
Interfaces Go
Goroutines basiques
Channels
Go Modules
Serveur HTTP
Client HTTP
Encodage JSON
database/sql
Package context
Testing
Patterns de concurrence
Primitives de synchronisation
Frameworks web Go
Design d'API REST
gRPC
Reflection
Gestion mémoire
Optimisation des performances
Generics
Design Patterns Go
Microservices
Sécurité & Authentication
Docker & Containerization
Kubernetes Basics
Go Avancé
Développement CLI
Maîtrise Go pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement