Maison > développement back-end > Golang > Comment gérer les erreurs dans les Goroutines avec les canaux ?

Comment gérer les erreurs dans les Goroutines avec les canaux ?

Patricia Arquette
Libérer: 2024-11-16 01:01:02
original
981 Les gens l'ont consulté

How to Handle Errors in Goroutines with Channels?

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)
Copier après la connexion

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
}
Copier après la connexion

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
}
Copier après la connexion

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!

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