Maison  >  Article  >  développement back-end  >  Erreur de bracelet et chaîne

Erreur de bracelet et chaîne

王林
王林original
2023-05-10 16:56:371449parcourir

En Golang, le type d'erreur est un type de données très courant. Au cours de notre processus de développement, nous rencontrons souvent des situations dans lesquelles nous devons convertir le type d'erreur en type chaîne. Cet article présentera plusieurs méthodes courantes de conversion d'erreur Golang pour votre référence.

Méthode 1 : utilisez la fonction Error()

Dans Golang, la fonction Error() est une méthode intégrée du type erreur, qui renvoie un message d'erreur de type chaîne. Par conséquent, nous pouvons utiliser la fonction Error() pour convertir le type d'erreur en un type chaîne. L'implémentation spécifique est la suivante :

func ErrorToString(err error) string {
    return err.Error()
}

Cette méthode est très simple et directe. Il vous suffit d'appeler la fonction Error() pour convertir. l'erreur dans une chaîne. Cependant, il arrive parfois que les informations d'erreur renvoyées par l'appel de la fonction Error() ne soient pas suffisamment détaillées ou vagues, nous devons donc choisir d'autres méthodes de conversion.

Méthode 2 : Utiliser fmt.Sprintf()

La fonction fmt.Sprintf() est une fonction qui formate les chaînes. Nous pouvons l'utiliser pour convertir le type d'erreur en type chaîne. L'implémentation spécifique est la suivante :

func ErrorToString(err error) string {
    return fmt.Sprintf("%v", err)
}

Cette méthode de conversion est très simple à utiliser. Il vous suffit de transmettre le type d'erreur en paramètre à la fonction fmt.Sprintf(). Cependant, le message d'erreur qu'il génère peut ne pas être aussi détaillé que celui généré par la fonction Error().

Méthode 3 : utiliser erreurs.New()

La fonction erreurs.New() est une fonction intégrée dans Golang. Elle renvoie une valeur de type error. Nous pouvons utiliser cette fonction pour créer un nouveau message d'erreur et le convertir en type chaîne. L'implémentation spécifique est la suivante :

func ErrorToString(err error) string {
    return errors.New(err.Error()).Error()
}

Cette méthode de conversion convertit d'abord le type d'erreur en type chaîne, puis utilise la fonction error.New() pour créer une nouvelle valeur de type d'erreur, et enfin appelle la fonction Error() pour convertir au type de chaîne. Bien que cette méthode soit plus lourde, elle produit des messages d’erreur plus détaillés.

Méthode 4 : utilisez github.com/pkg/errors

github.com/pkg/errors est une bibliothèque Golang open source qui fournit des fonctions étendues de gestion des erreurs. Parmi elles, la plus utile est la fonction Errorf(), qui est similaire à la fonction fmt.Sprintf() et peut formater les informations d'erreur et renvoyer une nouvelle valeur de type d'erreur. L'implémentation spécifique est la suivante :

import (
    "github.com/pkg/errors"
)

func ErrorToString(err error) string {
    return errors.Errorf("%+v", err).Error()
}

Cette méthode de conversion est très pratique à utiliser et le message d'erreur généré est très détaillé. Bien entendu, l'utilisation de cette bibliothèque augmentera les dépendances de votre projet, une réflexion approfondie est donc nécessaire avant utilisation.

Résumé

En Golang, la conversion du type d'erreur en type chaîne est une opération très courante. Cet article présente plusieurs méthodes de conversion couramment utilisées, notamment l'utilisation de la fonction Error(), de la fonction fmt.Sprintf(), de la fonction error.New() et de la fonction Errorf() dans la bibliothèque github.com/pkg/errors. La méthode à choisir dépend des besoins spécifiques du développeur et des circonstances du projet.

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
Article précédent:Que peut faire Golang ?Article suivant:Que peut faire Golang ?