typestar

Grupos de excepciones en Python

Varias fallas a la vez, y la sintaxis except* que las separa.

def juntar_fallas():
    fallas = [ValueError("número malo"), KeyError("falta"),
                ValueError("también malo")]
    raise ExceptionGroup("falló la validación", fallas)


try:
    juntar_fallas()
except* ValueError as grupo:
    print("valores:", [str(e) for e in grupo.exceptions])
except* KeyError as grupo:
    print("claves:", [str(e) for e in grupo.exceptions])

try:
    juntar_fallas()
except ExceptionGroup as grupo:
    print(grupo.message, len(grupo.exceptions))

Cómo funciona

  1. ExceptionGroup lleva una lista de excepciones.
  2. except* maneja las que coinciden y relanza el resto.
  3. TaskGroup los lanza, y por eso existe esta sintaxis.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
440
Tokens
116
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 63 segundos.

Escribe este fragmento

Paso 4 de 4 en Async a fondo; paso 51 de 53 en Python pythónico.

← Anterior Siguiente →