До версии 1.20 ошибки обрабатывались поочерёдно. Начиная с 1.20 появилась возможность объединить несколько ошибок в одну агрегированную с помощью
errors.Join.err = errors.Join(function1(), function2())
if err != nil {
fmt.Println(err)
// выведет все ошибки через \n
errors.Join возвращает nil, если все переданные ошибки равны nil. Иначе он возвращает составную ошибку, которую можно раскрыть через errors.Unwrap.🐸 Библиотека Go для собеса