Maison > développement back-end > Golang > Comment les développeurs Go comparent-ils les messages d'erreur sans méthode « GetMessage() » ?

Comment les développeurs Go comparent-ils les messages d'erreur sans méthode « GetMessage() » ?

Mary-Kate Olsen
Libérer: 2024-11-30 14:14:19
original
980 Les gens l'ont consulté

How Do Go Developers Compare Error Messages Without a `GetMessage()` Method?

Comparaison des messages d'erreur dans Go

Lors du traitement des erreurs en Java, les développeurs s'appuient souvent sur la méthode Exception.GetMessage() pour extraire les descriptions d'erreurs . Golang, cependant, n'a pas de méthode intégrée pour récupérer de tels messages.

Pour résoudre ce problème, les développeurs Go utilisent une approche personnalisée pour comparer les messages d'erreur. Au lieu de stocker les messages dans l'objet d'erreur, ils créent des variables d'erreur au niveau du package qui encapsulent des codes d'erreur ou des descriptions spécifiques :

var errExample = errors.New("this is an example")
Copier après la connexion

Lors du renvoi d'erreurs, les développeurs attribuent ces variables pour indiquer le type spécifique d'erreur qui s'est produite. . L'extrait suivant illustre cette approche :

if some_err := some_package.DoSomething(); some_err != nil {
    if some_err == errExample {
        // handle it
    }
}
Copier après la connexion

Dans ce cas, l'instruction if vérifie si l'erreur renvoyée par DoSomething() est identique à la variable errExample. Si tel est le cas, l'erreur est traitée en conséquence.

Pour étendre la portée de ces variables d'erreur, les développeurs peuvent les exporter en dehors du package à l'aide du mot-clé export :

var ErrExample = errors.New("this is an example")
Copier après la connexion

Cela permet au code dans différents packages à comparer avec la variable d'erreur exportée :

if err == somepackage.ErrExample {
    // handle it
}
Copier après la connexion

En suivant cette approche, les développeurs peuvent comparer efficacement les messages d'erreur dans Golang, même si le langage ne dispose pas d'un Méthode GetMessage().

Considérations supplémentaires :

Il est crucial d'éviter de comparer les messages d'erreur avec la chaîne renvoyée par la méthode error.Error(). Cela peut rendre le code fragile, car les messages d'erreur sont susceptibles de changer au fil du temps. Au lieu de cela, il est recommandé d'utiliser les variables d'erreur établies pour garantir la cohérence dans la gestion des erreurs.

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