Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest grupa błędów i jak jest używana w monitorowaniu lub obsłudze wyjątków?

sobes.tech AI

Odpowiedź od AI

Grupa błędów (error group) to struktura, która pozwala łączyć kilka błędów w jeden, aby ułatwić ich obsługę i zwracanie. W Go jest to przydatne, gdy trzeba wykonać kilka operacji równolegle i zebrać wszystkie występujące błędy w jednym obiekcie.

Przykład użycia grupy błędów z pakietu golang.org/x/sync/errgroup:

import (
    "fmt"
    "golang.org/x/sync/errgroup"
)

func process() error {
    var g errgroup.Group

    g.Go(func() error {
        // pierwsze zadanie
        return nil
    })

    g.Go(func() error {
        // drugie zadanie
        return fmt.Errorf("błąd w drugim zadaniu")
    })

    // Czekaj na zakończenie wszystkich zadań i pobierz pierwszy błąd, jeśli istnieje
    if err := g.Wait(); err != nil {
        return err
    }
    return nil
}

W ten sposób, grupa błędów pomaga wygodnie agregować błędy z kilku goroutine i upraszcza ich obsługę.