Sobes.tech
Junior — Middle

El tudná magyarázni, mi az a hibacsoport, és hogyan használják megfigyelés vagy kivételkezelés során?

sobes.tech MI

Válasz az MI-től

Hiba csoport (error group) egy olyan struktúra, amely lehetővé teszi több hiba egyesítését egybe, hogy könnyebben kezelhessük és visszaadhassuk őket. Go nyelvben ez akkor hasznos, ha több műveletet párhuzamosan kell végrehajtani, és az összes felmerülő hibát egy objektumban szeretnénk összegyűjteni.

A golang.org/x/sync/errgroup csomagból származó error group használatának példája:

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

func process() error {
    var g errgroup.Group

    g.Go(func() error {
        // első feladat
        return nil
    })

    g.Go(func() error {
        // második feladat
        return fmt.Errorf("hiba a második feladatban")
    })

    // Várjuk, hogy minden feladat befejeződjön, és megkapjuk az első hibát, ha van
    if err := g.Wait(); err != nil {
        return err
    }
    return nil
}

Így a error group segít kényelmesen összegyűjteni több goroutine-ból származó hibákat, és egyszerűsíti azok kezelését.