typestar

errors.Join en Go

Varias fallas a la vez, en un solo valor de error.

var (
    ErrEmptyTitle = errors.New("title is empty")
    ErrBadStars   = errors.New("stars out of range")
)

func check(title string, stars int) error {
    var problems error
    if title == "" {
        problems = errors.Join(problems, ErrEmptyTitle)
    }
    if stars < 0 || stars > 3 {
        problems = errors.Join(problems, ErrBadStars)
    }
    return problems
}

func summary() (int, bool) {
    err := check("", 9)
    return len(strings.Split(err.Error(), "\n")), errors.Is(err, ErrBadStars)
}

Cómo funciona

  1. Join ignora los nil, así que se compone con chequeos opcionales.
  2. errors.Is coincide con cualquiera de los errores unidos.
  3. El mensaje es una falla por línea.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
452
Tokens
116
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 70 segundos.

Escribe este fragmento

Paso 4 de 4 en Envolver errores; paso 7 de 15 en Errores.

← Anterior Siguiente →