[SQLObject] manejo de except
Milton Galo Patricio Inostroza Aguilera
minoztro en gmail.com
Vie Ago 17 09:39:44 CEST 2007
estimados:
Hace un tiempo que trabajo con SQLObject y utilizo en el except el
SQLObjectNotFound pero ahora en búsqueda de más exception's he
encontrado las siguientes:
Error
DatabaseError
DataError
IntegrityError
DuplicateEntryError
InternalError
NotSupportedError
OperationalError
ProgrammingError
InterfaceError
Warning
pero ninguna de ellas me toma cuando mi aplicación me lanza una
exception..a continuación un trozo de código y mensaje de error de la
aplicación{ingresaré un registro que ya exista}:
try:
model.Asistente(
rut_asistente = kwargs['rut'],
nombres_asistente= kwargs['nombres'],
apellido_paterno_asistente = kwargs['apellidoPaterno'],
apellido_materno_asistente = kwargs['apellidoMaterno'],
)
except sqlobject.dberrors.IntegrityError:
flash("Cuenta existente")
raise redirect("/form/")
y el mensaje de error es el siguiente {ya que el except no me capta el error}:
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/declarative.py",
line 94, in _wrapper
return fn(self, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/main.py",
line 1214, in __init__
self._create(id, **kw)
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/main.py",
line 1245, in _create
self._SO_finishCreate(id)
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/main.py",
line 1269, in _SO_finishCreate
id, names, values)
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/dbconnection.py",
line 849, in queryInsertID
self._connection, soInstance, id, names, values)
File "/usr/lib/python2.5/site-packages/SQLObject-0.9.0-py2.5.egg/sqlobject/postgres/pgconnection.py",
line 136, in _queryInsertID
c.execute(q)
IntegrityError: llave duplicada viola restricción unique
«asistente_rut_asistente_key»
Lo que no entiendo es por qué no me captura la exception si incluso
en la ultima linea me dice que la exception es del mismo tipo.
Agradecería vuestra ayuda y comentarios, salu2!!
--
Milton Inostroza Aguilera
Más información sobre la lista de distribución Python-es