Maison > développement back-end > Golang > Comment puis-je gérer avec élégance les types d'erreurs personnalisés dans Go ?

Comment puis-je gérer avec élégance les types d'erreurs personnalisés dans Go ?

DDD
Libérer: 2024-12-27 14:36:11
original
954 Les gens l'ont consulté

How Can I Gracefully Handle Custom Error Types in Go?

Gestion des types d'erreur personnalisés dans Go

Vous rencontrez des difficultés pour utiliser les types d'erreur personnalisés dans Go. Après avoir fait référence à un article de blog sur les erreurs, vous tentez de définir un type d'erreur personnalisé ModelMissingError, mais vous rencontrez une erreur lors de la vérification de son type.

Pour résoudre ce problème, vous devez utiliser l'expression "virgule ok" :

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

Cet idiome vous permet d'affirmer le type d'une valeur d'interface et d'obtenir la valeur concrète sous-jacente. Dans ce cas, la variable d'erreur err est testée pour voir si elle contient un type concret de *model.ModelMissingError.

Si l'assertion réussit, ok sera défini sur true et serr contiendra le *model sous-jacent. Valeur .ModelMissingError. Vous pouvez ensuite utiliser cette valeur pour prendre les actions appropriées en fonction de l'erreur personnalisée.

Par exemple, vous pouvez modifier votre code pour :

if ok && serr.msg == "no model found for id" {
    // Handle error gracefully
}
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal