// Created on savesnippets.com ยท https://savesnippets.com/pzPSnMDmuJlfv7 package main import ( "errors" "fmt" ) func validateUser(name, email string) error { var errs []error if name == "" { errs = append(errs, errors.New("name is required")) } if email == "" { errs = append(errs, errors.New("email is required")) } if len(name) > 50 { errs = append(errs, fmt.Errorf("name too long (%d)", len(name))) } return errors.Join(errs...) // nil if errs is empty } func main() { err := validateUser("", "") fmt.Println(err) // name is required // email is required // The joined error matches Is/As against any of its children if errors.Is(err, errors.New("name is required")) { fmt.Println("(would be true with sentinel errors)") } }