typestar

La jerarquía de excepciones en Python

Atrapa la clase más estrecha que cubra lo que de verdad puedes manejar.

print(ValueError.__mro__)
print(issubclass(FileNotFoundError, OSError))


def convertir(texto):
    try:
        return int(texto)
    except ValueError as exc:
        return f"no es número ({exc.args[0][:18]}...)"
    except TypeError:
        return "tipo totalmente equivocado"


print(convertir("12"), convertir("x"), convertir(None))
try:
    raise KeyError("faltante")
except LookupError as exc:
    print("LookupError atrapado", type(exc).__name__)

Cómo funciona

  1. Exception atrapa errores; BaseException también atrapa salidas.
  2. El orden de los bloques except importa: primero el más estrecho.
  3. __mro__ muestra por qué una clase atrapa a otra.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
412
Tokens
106
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 1 de 3 en Errores a fondo; paso 62 de 72 en Fundamentos del lenguaje.

← Anterior Siguiente →