Excepciones: continuación
Observa el código en el editor. Es un ejemplo simple para comenzar. Ejecutalo.
La salida que esperamos ver se ve así:
Uuuppsss...
FIN.
Ahora observa el código a continuación:
try:
y = 1 / 0
except ArithmeticError:
print("Uuuppsss...")
print("FIN.")
Algo ha cambiado: hemos reemplazado ZeroDivisionError
con ArithmeticError
.
Ya se sabe que ArithmeticError
es una clase general que incluye (entre otras) la excepción ZeroDivisionError
.
Por lo tanto, la salida del código permanece sin cambios. Pruébalo.
Esto también significa que reemplazar el nombre de la excepción ya sea con Exception
o BaseException
no cambiará el comportamiento del programa.
Vamos a resumir:
- Cada excepción cae en la primer coincidencia.
- La coincidencia correspondiente no tiene que especificar exactamente la misma excepción, es suficiente que la excepción sea mas general (mas abstracta) que la lanzada.