try, except, finally en Python
Manejar fallas: atrapa lo que esperas, relanza lo que no.
def division_segura(a, b):
try:
resultado = a / b
except ZeroDivisionError:
return None
except TypeError as exc:
raise ValueError(f"operandos inválidos: {exc}")
else:
return resultado
finally:
print("se intentó dividir")
mitad = division_segura(1, 2)
nada = division_segura(1, 0)
Cómo funciona
- Cada cláusula
exceptapunta a un tipo de excepción. elsecorre solo cuando no se lanzó nada.finallycorre en toda ruta de salida.- Atrapar
TypeErrorrelanza como un error más claro.
Palabras clave y builtins usados aquí
asdefelseexceptfinallyprintraisereturntry
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 281
- Tokens
- 64
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 38 segundos.
Paso 4 de 7 en Iteradores, errores y archivos; paso 47 de 72 en Fundamentos del lenguaje.