Documentos de Académico
Documentos de Profesional
Documentos de Cultura
objetos
Lenguajes de Programación
1. Excepciones
Cómo capturar las excepciones?
Con la estructura try-except para tratar las excepciones
En el try se coloca el código que podría producir la
excepción
El bloque except (excepción) permite indicar el tratamiento
que se llevará a cabo de producirse dicha excepción
Probar:
try:
f = file(“archivo.txt”)
except:
print “El archivo no existe”
Varios except
try:
num = int(“3a”)
print no_existe
except NameError:
print “La variable no existe”
exceptValueError:
print “El valor no es un numero”
Un mismo except
try:
num = int(“3a”)
print no_existe
except (NameError, ValueError):
print “Ocurrio un error”
Else
La construcción try-except puede contar además con una
clausula else, que define un fragmento de código a ejecutar
sólo si no se ha producido ninguna excepción en el
try.
try:
num = 33
except:
print “Hubo un error!”
else:
print “Todo esta bien”
Finally
También existe una clausula finally que se ejecuta siempre, se
produzca o no una excepción. Esta clausula se suele utilizar,
entre otras cosas, para tareas de limpieza.
try:
z=x/y
except ZeroDivisionError:
print “Division por cero”
finally:
print “Limpiando”
Creando propias excepciones
También es interesante comentar podemos crear y lanzar nuestras
propias excepciones. Basta crear una clase que herede de Exception o
cualquiera de sus hijas y lanzarla con raise.
class MiError(Exception):
def __init__(self, valor):
self.valor = valor
def __str__(self):
return “Error “ + str(self.valor)
try:
if resultado > 20:
raise MiError(33)
except MiError as e: #En python 2.X es MiError, e
print e
2. Serialización de objetos
Qué es la serialización?
Necesidad de guardar un objeto a disco para poder
recuperarlo más tarde, o es necesario mandar un objeto a
través de la red, a otro programa en Python ejecutándose en
otra máquina.
Al proceso de transformar el estado de un objeto en un
formato que se pueda almacenar, recuperar y transportar se
le conoce como serialización o marshalling
Módulos que permiten serializar
En Python tenemos varios módulos que nos facilitan esta tarea, como
marshal, pickle, cPickle y shelve