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
DDDoriginal
2024-12-27 14:36:11897parcourir

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)

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
}

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