Maison >développement back-end >Golang >Comment capturer des erreurs spécifiques dans Go ?

Comment capturer des erreurs spécifiques dans Go ?

DDD
DDDoriginal
2024-11-06 18:32:031019parcourir

How do I Capture Specific Errors in Go?

Capture d'erreurs spécifiques dans Go

Lors de l'interaction avec les fonctions standard de la bibliothèque Go qui renvoient des erreurs, il peut être utile d'identifier et de gérer des types spécifiques d'erreurs, telles que « connexion perdue » ou « connexion refusée ». Voici comment y parvenir :

Utilisation des erreurs.Is et des erreurs.As

Pour les versions Go modernes, l'approche recommandée consiste à utiliser les erreurs.Est et les erreurs. En tant que fonctions de la bibliothèque standard. Ces fonctions vous permettent de vérifier si une erreur correspond à un type spécifique ou d'extraire un sous-ensemble des informations sur l'erreur. Par exemple :

if errors.Is(err, syscall.ECONNREFUSED) {
    // err is a connection refused error
}

Correspondance des chaînes d'erreur

Si une fonction de bibliothèque standard ne fournit pas de types d'erreur spécifiques, vous pouvez recourir à une comparaison de la chaîne d'erreur :

if err.Error() == "connection lost" {
    // err contains "connection lost" error
}

Vérification de types d'erreurs spécifiques

Certaines bibliothèques peuvent exporter des types d'erreurs spécifiques qui peuvent être vérifiés directement :

if _, ok := err.(net.Error); ok {
    // err is a net.Error instance
}

Déterminer tout Erreurs possibles

L'identification de toutes les erreurs possibles renvoyées par une fonction de bibliothèque standard nécessite la lecture du code source. Alternativement, vous pouvez consulter la documentation, telle que le godoc du package net, où les erreurs sont souvent décrites.

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!

Déclaration:
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