Junior — Middle
Puoi condividere un esempio di come hai implementato la gestione degli errori con error.Group nei tuoi progetti?
sobes.tech AI
Risposta dell'AI
Nel pacchetto errors di Go con il tipo Group (ad esempio, da golang.org/x/sync/errgroup) è possibile raccogliere e gestire facilmente più errori che si verificano in goroutine parallele.
Esempio di utilizzo di errgroup.Group per eseguire task in parallelo con gestione degli errori:
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func processTasks() error {
var g errgroup.Group
compiti := []func() error{
func() error { /* compito 1 */ return nil },
func() error { /* compito 2 */ return fmt.Errorf("errore nel compito 2") },
func() error { /* compito 3 */ return nil },
}
for _, compito := range compiti {
c := compito
g.Go(func() error {
return c()
})
}
if err := g.Wait(); err != nil {
// Gestione del primo errore incontrato
return err
}
return nil
}
Nei miei progetti, ho usato errgroup per avviare più operazioni indipendenti in parallelo e raccogliere gli errori in modo ordinato, semplificando il codice e migliorando la leggibilità.