0% encontró este documento útil (0 votos)
42 vistas14 páginas

Manejo de Excepciones en Python

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
42 vistas14 páginas

Manejo de Excepciones en Python

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Módulo 12.

Manejo de Excepciones.

Fundamentos de Python. Página 12.0 de nn


Motivación.

• La estructura de Manejo de Excepciones de


Python permite a los programadores separar
claramente el código que implementa el
Algoritmo del código que trata con situaciones
excepcionales que el Algoritmo puede enfrentar.

• Este enfoque es más modular e invita a


desarrollar código que es más limpio, claro y
fácil de depurar.

Fundamentos de Python. Página 12.1 de nn


¿Qué es una Excepción?
• Una Excepción es un objeto especial que se
crea cuando un programa encuentra una
situación extraordinaria.

• Ejemplos de situaciones extraordinarias:


– Tratar de leer un archivo después del EOF.
– Evaluar la expression lst[i] cuando i >= len(lst).
– Intentar convertir un string no numérico a número.
– Intentar leer de una variable que no ha sido definida.
– Tratar de leer datos de la red cuando se ha perdido la
conexión.

Fundamentos de Python. Página 12.2 de nn


Algunas Excepciones Comunes.

Fundamentos de Python. Página 12.3 de nn


Ocurrencias de Excepciones.
• Ejemplo 12.01.
• La ejecución de este ejemplo cuando el divisor es 0
produce una Excepción ZeroDivisionError.
• Desde luego es posible evitar que ocurra la Excepción
directamente, normalmente mediante postulados
condicionales.
• Ejemplo 12.02
• También se pueden producir excepciones cuando el
usuario no entiende bien las instrucciones del programa.
• Ejemplo 12.03.
• La ejecución del ejemplo anterior produce una
Excepción Value Error cuando el usuario introduce un
número tecleado en letras.
Fundamentos de Python. Página 12.4 de nn
Manejo de las Excepciones.
• El manejo de las Excepciones en Python se basa en los
postulados try y except.
• try define un bloque de código que automáticamente
ocasiona que termine el mismo si ocurre una Excepción
dentro de él.
• except define otro bloque al cual es transferido el control
cuando ocurre una excepción en el bloque try.
• Después de la palabra reservada except se puede
codificar el tipo o tipos de Excepción que se quiere(n)
manejar, si no se codifica se maneja cualquier
Excepción, como veremos enseguida.
• Ejemplos 12.04 y 12.05.

Fundamentos de Python. Página 12.5 de nn


Múltiples Excepciones.
• Puede haber varios postulados except en un programa
de manera que cada bloque except maneje un tipo de
Excepción diferente.
• Ejemplo 12.06.
• También es posible codificar en el except un Tuple con
varios tipos de Excepción.
• Ejemplo 12.07.
• Para atrapar cualquier Excepción se codifica except: sin
ningún tipo de Excepción o bien except Exception: .

• Ejemplos 12.08, 12.09 y 12.10.

Fundamentos de Python. Página 12.6 de nn


Objeto Excepción.
• El bloque except "atrapa" o "cacha" objetos Excepción.

• Podemos inspeccionar el objeto que "atrapó" la


Excepción si especificamos el nombre del objeto usando
la palabra reservada as.

• Por ejemplo: except ValueError as e:

• Ejemplo 12.11.

Fundamentos de Python. Página 12.7 de nn


Alcance del Manejo de Excepciones.

• La infraestructura del manejo de Excepciones de Python


trasciende las reglas generales de alcance o visibilidad
de variables o funciones.
• En los ejemplos anteriores todo el código está dentro del
código principal.
• El origen de la Excepción está cerca del código que
podemos ver.
• Para tener una mejor idea del alcance y poderío del
manejo de Excepciones, consideremos los siguientes
ejemplos.

• Ejemplos 12.12, 12.13 y 12.14.

Fundamentos de Python. Página 12.8 de nn


Provocación de Excepciones.

• Hemos visto que hay funciones que pueden provocar


Excepciones como por ejemplo open o int.
• Se puede provocar una Excepción utilizando la palabra
reservada raise.
• Su argumento, si está presente, debe ser una
Excepción, por ejemplo raise ValueError.
• La mayoría de los objetos Exception aceptan un
parámetro de tipo string para proporcionar más
información, por ejemplo raise ValueError('45')
• raise sin argumentos dentro de un bloque except repite
la Excepción que se había provocado con anterioridad.

• Ejemplos 12.15, 12.16 y 12.17.


Fundamentos de Python. Página 12.9 de nn
Bloque opcional else en bloque try.

• El bloque del postulado try puede tener una claúsula


opcional llamada else.
• El código en el bloque de la claúsula else se ejecuta
solamente si el código en el bloque try no produce una
Excepción.
• El bloque else debe aparecer después de todos los
except.
• ¿No tendría el mismo comportamiento si no se codifica
el bloque else?
• En realidad, hay una diferencia sutil, cuando hay
Excepción no se ejecuta el bloque else.

Fundamentos de Python. Página 12.10 de nn


Flujo en el bloque else del bloque try.

Ejemplo 12.18.

Fundamentos de Python. Página 12.11 de nn


Bloque finally en try.
• El bloque try también puede tener otro bloque llamado
finally.

• El código en este bloque se ejecuta siempre


independientemente de que haya habido o no
Excepción.

• Usualmente el bloque finally contiene código de


"limpieza" que debe ejecutarse para terminar cualquier
actividad que se inició en el bloque try.

Fundamentos de Python. Página 12.12 de nn


Flujo en el bloque finally del bloque try.

Ejemplo 12.19 a 12.22.


Fundamentos de Python. Página 12.13 de nn

También podría gustarte