[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