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.
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 }
Dans une méthode, nous peut générer une erreur personnalisée :
return Model{}, &ModelMissingError{"no model found for id"}
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.
Go fournit l'expression virgule ok pour vérifier l'assertion de type :
serr, ok := err.(*model.ModelMissingError)
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!