Obtenir des traces de pile pointant vers la source d'erreur réelle
Dans un programme Go, une panique peut survenir en raison d'une erreur déclenchée par un tiers- bibliothèque du parti. Cependant, la trace de pile par défaut ne fournit souvent que le point où la panique s'est produite, et non la source réelle de l'erreur.
Pour approfondir les origines de l'erreur, le package error propose une solution . En implémentant l'interface stackTracer, qui expose la méthode StackTrace, les erreurs peuvent être encapsulées avec des informations supplémentaires.
type stackTracer interface { StackTrace() errors.StackTrace }
Le code suivant montre comment tracer une erreur à sa source d'origine :
func main() { value, err := some3rdpartylib.DoSomething() if err != nil { // Wrap the error with stack trace information err = errors.WithStack(err) panic(err) } }
Dans le cas malheureux d'une panique, la trace de la pile inclura désormais le source réelle de l'erreur, permettant au développeur d'identifier la cause première.
De plus, des bibliothèques tierces peuvent améliorer encore les capacités de gestion des erreurs :
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!