Junior — Middle
Vai vari dalīties ar piemēru, kā jūs īstenojāt kļūdu pārvaldību, izmantojot error.Group savos projektos?
sobes.tech AI
Atbilde no AI
Go paketē errors ar tipu Group (piemēram, no golang.org/x/sync/errgroup) ir viegli savākt un apstrādāt vairākas kļūdas, kas rodas paralēlajās gorutīnās.
Piemērs, kā izmantot errgroup.Group paralēlai uzdevumu izpildei ar kļūdu apstrādi:
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func processTasks() error {
var g errgroup.Group
uzdevumi := []func() error{
func() error { /* uzdevums 1 */ return nil },
func() error { /* uzdevums 2 */ return fmt.Errorf("kļūda uzdevumā 2") },
func() error { /* uzdevums 3 */ return nil },
}
for _, uzdevums := range uzdevumi {
u := uzdevums
g.Go(func() error {
return u()
})
}
if err := g.Wait(); err != nil {
// Apstrādāt pirmo sastapto kļūdu
return err
}
return nil
}
Projektos esmu izmantojis errgroup, lai paralēli uzsāktu vairākas neatkarīgas operācijas un organizēti savāktu kļūdas, kas vienkāršo kodu un uzlabo lasāmību.