Excepciones Python
Excepciones Python
Manejo de
Excepciones
www.unaj.edu.ar
Algoritmos y Programación
Temario
• Manejo de Excepciones
– ¿Qué es un excepción?
– ¿Qué hay que investigar del lenguaje cuando tiene
manejo de excepciones?
– Excepciones en Python
www.unaj.edu.ar
Algoritmos y Programación
¿Qué es un excepción?
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
¿El lenguaje
Ejemplo de excepciones
tiene algún mecanismo
no manejadas
para
y manejadas
manejar
por excepciones?
las el programador
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
Excepciones en Python
www.unaj.edu.ar
Algoritmos y Programación
Excepciones en Phyton
La estructura que presenta Python para manejo
de excepciones es la siguiente:
Un conjunto de try:
excepciones pueden ser sentencia 1
manejadas por un mismo ....
manejador. En ese caso
se puede colocar: sentencia n
except nombre de la excepción 1:
except
sentencias
(exp1,exp2,..):
..
Puede aparecer un except
SIN nombre de except nombre de la excepción n:
excepción, pero SOLO al sentencias
final. Actúa como comodín else:
except: sentencias
finally:
Opcional
sentencias
www.unaj.edu.ar
Algoritmos y Programación
else:
• El código colocado en la cláusula else se
ejecuta solo si no se levante una excepción
finally:
• El código colocado en la cláusula finally se
ejecuta siempre se haya o no levantado una
excepción
www.unaj.edu.ar
Algoritmos y Programación
NO se levanta la excepción..
www.unaj.edu.ar
Algoritmos y Programación
NO se levanta la excepción..
Operación que
levantará una
excepción del tipo
NameError, “variable
no definida”
Busca estáticamente:
– Analiza si ese try está contenido dentro de otro y si
ese otro tiene un manejador para esa excepción..
Se produce un error del
tipo: NameError,
“variable no definida”,
que NO es manejada
por el bloque try except
interno. Se termina ese
bloque interno y se
SI es manejada
buscapor
unelmanejador
bloque try except que
en un bloquelo más
contiene… externo.
Ejecuta el
manejador del
bloque que lo
contiene.
www.unaj.edu.ar
Algoritmos y Programación
El error se levantó en la
func “elemento” y no se
manejó allí
www.unaj.edu.ar
Algoritmos y Programación
Si no se encuentra un manejador :
– Es una excepción no manejada, y la ejecución se frena con
un mensaje como los mostrados antes
El módulo que contiene
la función “elemento”
solo maneja la
excepción NameError
y el código que la
invoca solo maneja la
excepción IOError, NO
hay manejador para
IndexError
Se corta el
proceso y larga el
mensaje standard
de error
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
www.unaj.edu.ar
Algoritmos y Programación
Explícitamente debemos
levantar nuestra excepción con la
sentencia raise
www.unaj.edu.ar