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
ExceptionGrouplleva una lista de excepciones.except*maneja las que coinciden y relanza el resto.- TaskGroup los lanza, y por eso existe esta sintaxis.
Palabras clave y builtins usados aquí
asdefexceptforlenprintraisestrtry
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.
Paso 4 de 4 en Async a fondo; paso 51 de 53 en Python pythónico.