Gestion des erreurs dans les Goroutines avec les canaux
Dans Go, les fonctions renvoient souvent une valeur et une erreur, vous permettant de gérer les erreurs potentielles dans votre code. Lors de l'exécution d'une fonction dans une goroutine et de la transmission de données via des canaux, la question se pose de savoir comment gérer efficacement les erreurs.
Une approche courante consiste à créer une structure personnalisée pour regrouper les résultats. Cette structure peut inclure à la fois un message et un champ d'erreur, vous permettant de renvoyer les deux informations sur un seul canal.
type Result struct { Message string Error error } ch := make(chan Result)
Dans votre goroutine, vous pouvez créer une structure de résultat avec le message et l'erreur appropriés. valeurs. Ensuite, envoyez la structure via le canal.
func createHashedPasswordAsync(password string, ch chan Result) { // Code to create hashed password result := Result{ Message: "Hash created", } if err != nil { result.Error = err } ch <- result }
Dans la goroutine principale, vous pouvez recevoir la structure de résultat et gérer le message et l'erreur en conséquence.
result := <-ch if result.Error != nil { // Handle error } else { // Do something with the message }
En utilisant un fichier personnalisé struct pour regrouper les résultats, vous pouvez gérer efficacement les erreurs dans les goroutines et transmettre à la fois le message et l'erreur sur un seul canal.
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!