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 은 단일 에러만 반환합니다.