Module (52%)
Section (54%)

Más sobre excepciones

El discutir sobre la programación orientada a objetos ofrece una muy buena oportunidad para volver a las excepciones. La naturaleza orientada a objetos de las excepciones de Python las convierte en una herramienta muy flexible, capaz de adaptarse a necesidades específicas, incluso aquellas que aún no conoces.

Antes de adentrarnos en el lado orientado a objetos de las excepciones, queremos mostrarte algunos aspectos sintácticos y semánticos de la forma en que Python trata el bloque try-except, ya que ofrece un poco más de lo que hemos presentado hasta ahora.

La primera característica que queremos analizar aquí es una rama adicional posible que se puede colocar dentro (o más bien, directamente detrás) del bloque try-except: es la parte del código que comienza con else - justo como el ejemplo en el editor.


Un código etiquetado de esta manera se ejecuta cuando (y solo cuando) no se ha generado ninguna excepción dentro de la parte del try:. Podemos decir que esta rama se ejecuta después del try: - ya sea el que comienza con except (no olvides que puede haber más de una rama de este tipo) o la que comienza con else.

Nota: la rama else: debe ubicarse después de la última rama except.

El código de ejemplo produce el siguiente resultado:

Todo salió bien 0.5 División fallida None

Code

def reciproco(n):
try:
n = 1 / n
except ZeroDivisionError:
print("División fallida")
return None
else:
print("Todo salió bien")
return n

print(reciproco(2))
print(reciproco(0))
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×