Junior — Middle
¿Puedes compartir un ejemplo de cómo implementaste el manejo de errores usando error.Group en tus proyectos?
sobes.tech AI
Respuesta de la IA
En el paquete errors de Go con el tipo Group (por ejemplo, de golang.org/x/sync/errgroup) permite recopilar y manejar fácilmente múltiples errores que ocurren en goroutines paralelas.
Ejemplo de uso de errgroup.Group para ejecutar tareas en paralelo con manejo de errores:
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func processTasks() error {
var g errgroup.Group
tareas := []func() error{
func() error { /* tarea 1 */ return nil },
func() error { /* tarea 2 */ return fmt.Errorf("error en la tarea 2") },
func() error { /* tarea 3 */ return nil },
}
for _, tarea := range tareas {
t := tarea
g.Go(func() error {
return t()
})
}
if err := g.Wait(); err != nil {
// Manejar la primera error encontrada
return err
}
return nil
}
En mis proyectos, he utilizado errgroup para ejecutar varias operaciones independientes en paralelo y recopilar errores de manera ordenada, lo que simplifica el código y mejora la legibilidad.