Maison > développement back-end > Golang > Comment gérer avec élégance des erreurs spécifiques dans la bibliothèque standard de Go ?

Comment gérer avec élégance des erreurs spécifiques dans la bibliothèque standard de Go ?

Barbara Streisand
Libérer: 2024-11-06 17:39:02
original
797 Les gens l'ont consulté

How to Gracefully Handle Specific Errors in Go's Standard Library?

Comment gérer avec précision des erreurs spécifiques

Lorsque vous travaillez avec les fonctions de bibliothèque standard de Go, vous pouvez rencontrer des situations dans lesquelles vous ne vous souciez que de types spécifiques de erreurs. Par exemple, si vous utilisez rpc.Dial, vous pourriez être intéressé uniquement par la gestion des erreurs liées à la perte ou au refus de connexion.

Utilisation des erreurs.Is et des erreurs.As

Le moyen préféré pour détecter des erreurs spécifiques dans Go moderne est d'utiliser les fonctions erreurs.Is et erreurs.As :

if errors.Is(err, syscall.ECONNREFUSED) {
    // Connection refused error
} else {
    // Some other kind of error
}
Copier après la connexion

Ces fonctions effectuent une comparaison approfondie de l'erreur avec l'erreur cible ou le type d'erreur donné.

Lorsque des types d'erreurs spécifiques sont disponibles

Certaines bibliothèques utilisent des types d'erreurs spécifiques, ce qui simplifie la gestion des erreurs. Par exemple, le package net définit plusieurs types d'erreurs, notamment net.Error pour les erreurs réseau :

if _, ok := err.(net.Error); ok {
    if err.Error() == "connection lost" { ... }
}
Copier après la connexion

Obtention de toutes les erreurs possibles

Détermination de toutes les erreurs possibles renvoyées par une fonction de bibliothèque standard n’est pas simple. La meilleure approche consiste à revoir le code source ou à consulter la documentation godoc de la fonction.

Notes de mise en garde

  • La comparaison de chaînes doit être utilisée avec parcimonie, car elle est fragile et peut conduire à une gestion incorrecte des erreurs.
  • Les erreurs spécifiques renvoyées par une fonction peuvent changer dans les futures versions de Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal