Maison > développement back-end > Golang > Comment puis-je vérifier le type d'une erreur personnalisée dans Go ?

Comment puis-je vérifier le type d'une erreur personnalisée dans Go ?

Linda Hamilton
Libérer: 2024-12-25 20:43:19
original
755 Les gens l'ont consulté

How Can I Check the Type of a Custom Error in Go?

Personnalisation des types d'erreurs dans Go

Enrichir vos applications Go avec des types d'erreurs personnalisés améliore la gestion des erreurs, mais la manipulation de ces types personnalisés peut être difficile. Examinons la question de la vérification du type d'erreur personnalisée.

Le problème

Considérons le type d'erreur personnalisée suivant :

type ModelMissingError struct {
    msg string // description of error
}

func (e *ModelMissingError) Error() string { return e.msg }
Copier après la connexion

Dans une méthode, nous peut générer une erreur personnalisée :

return Model{}, &ModelMissingError{"no model found for id"}
Copier après la connexion

La requête

Pour déterminer si une erreur est spécifique type personnalisé, nous devons vérifier son type. Cependant, l'approche if err == model.ModelMissingError échoue.

La solution

Go fournit l'expression virgule ok pour vérifier l'assertion de type :

serr, ok := err.(*model.ModelMissingError)
Copier après la connexion

Cette instruction affirme que la variable d'erreur err contient le type model.ModelMissingError et attribue la valeur sous-jacente à la variable ser. Si err ne contient pas le type attendu, l'instruction retournera nil pour serr et false pour ok.

En utilisant l'idiome virgule ok, nous pouvons vérifier efficacement le type d'une erreur personnalisée et la gérer en conséquence.

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