Sometimes you need to collect multiple errors:
var errs []error
for _, item := range items {
if err := process(item); err != nil {
errs = append(errs, err)
}
}
if len(errs) > 0 {
return fmt.Errorf("processing failed: %v", errs)
}
This continues despite errors, collecting them all. Report them together at the end.