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
Exceptionatrapa errores;BaseExceptiontambién atrapa salidas.- El orden de los bloques except importa: primero el más estrecho.
__mro__muestra por qué una clase atrapa a otra.
Palabras clave y builtins usados aquí
asdefexceptintissubclassprintraisereturntrytype
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.
Paso 1 de 3 en Errores a fondo; paso 62 de 72 en Fundamentos del lenguaje.