PHpullh
학습 라이브러리/Go/errors.Join (다중 에러)

GO · 에러처리

errors.Join (다중 에러)

Go 1.20의 errors.Join으로 여러 에러를 하나로 결합합니다. 병렬 작업의 에러 수집에 유용합니다.

에러처리중급errors-joinmulti-errorvalidationgo120

핵심 설명

Go 1.20의 errors.Join으로 여러 에러를 하나로 결합합니다. 병렬 작업의 에러 수집에 유용합니다.

Go code

package main

import (
	"errors"
	"fmt"
)

func validateForm(name, email string, age int) error {
	var errs []error

	if name == "" {
		errs = append(errs, fmt.Errorf("이름은 필수입니다"))
	}
	if email == "" {
		errs = append(errs, fmt.Errorf("이메일은 필수입니다"))
	}
	if age < 0 {
		errs = append(errs, fmt.Errorf("나이는 0 이상이어야 합니다"))
	}

	return errors.Join(errs...)
}

var ErrRequired = errors.New("필수 필드 누락")

func main() {
	err := validateForm("", "", -1)
	if err != nil {
		fmt.Println("검증 에러:")
		fmt.Println(err)
		// 이름은 필수입니다
		// 이메일은 필수입니다
		// 나이는 0 이상이어야 합니다
	}

	// nil 에러는 무시됨
	err2 := errors.Join(nil, nil)
	fmt.Println(err2 == nil) // true
}

학습 팁

errors.Join은 nil 에러를 자동으로 건너뜁니다. 모든 에러가 nil이면 nil을 반환합니다.

주의할 점

errors.Join으로 결합된 에러는 errors.Is로 개별 에러를 검사할 수 있지만, errors.Unwrap은 단일 에러만 반환합니다.

자주 묻는 질문

errors.Join (다중 에러)란 무엇인가요?

Go 1.20의 errors.Join 으로 여러 에러를 하나로 결합합니다. 병렬 작업의 에러 수집에 유용합니다.

errors.Join (다중 에러) 학습 시 주의할 점은 무엇인가요?

errors.Join 으로 결합된 에러는 errors.Is 로 개별 에러를 검사할 수 있지만, errors.Unwrap 은 단일 에러만 반환합니다.

Continue Learning

Go 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.