Excepciones en plpython

Chema Cortes pych3m4 en gmail.com
Mar Mayo 6 19:29:42 CEST 2008


El 2008/5/6 Oswaldo Hernández <listas en soft-com.es> escribió:

>  Estoy haciendo una funciones en plpython (PostgreSQL) y no consiguo
> capturar correctamente las excepciones de la base de datos, es decir,
>
>  En una funcion:
>
>  try:
>     plpy.execute("select .......")
>  except Exception, e:
>     plpy.error("Error ejecucion:<%s>, %s" % (e.__class__, str(e))
>
>  Si se produce un error del lado de la base de datos (sql erroneo, etc ..)
> siempre me tira la misma excepción, sea cual sea el error:
>     "Error execute <<type 'exceptions.SystemError'>>, error return without
> exception set",

Según la documentación, plpy.error() siempre lanza una excepción
python, responsable del final de la transacción que se está ejecutando
al no ser interceptada. No creo que sea éso lo que quieras hacer.


>  Al ejecutarlo en psql muestra los siguientes mensajes:
>     WARNING:  plpython: in function pytest3:
>     DETALLE:  <class 'plpy.SPIError'>: Unknown error in
> PLy_spi_execute_query
>
>  por lo que he intentado:
>     except plpy.SPIError, e:
>
>  pero lo ignora y salta con la excepcion generica y el mensaje mecionado.
>
>  ¿Alguien sabe como capturar correctamente las excepciones de PostgreSQL?
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es