Junior — Middle
Môžeš zdieľať príklad, ako si implementoval spracovanie chýb pomocou error.Group vo svojich projektoch?
sobes.tech AI
Odpoveď od AI
V balíku errors v Go s typom Group (napríklad z golang.org/x/sync/errgroup) je ľahké zbierať a spracovávať viacero chýb, ktoré vznikajú v paralelných gorutinách.
Príklad použitia errgroup.Group na paralelné vykonávanie úloh s ošetrením chýb:
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func processTasks() error {
var g errgroup.Group
úlohy := []func() error{
func() error { /* úloha 1 */ return nil },
func() error { /* úloha 2 */ return fmt.Errorf("chyba v úlohe 2") },
func() error { /* úloha 3 */ return nil },
}
for _, úloha := range úlohy {
u := úloha
g.Go(func() error {
return u()
})
}
if err := g.Wait(); err != nil {
// Spracovanie prvej chyby
return err
}
return nil
}
V mojich projektoch som používal errgroup na spustenie viacerých nezávislých operácií paralelne a na ich správne zbieranie chýb, čo zjednodušuje kód a zlepšuje čitateľnosť.