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)")
}
}
Create a free account and build your private vault. Share publicly whenever you want.