2011-07-14 12 views
5

Todo,mensajes de error psycopg2

estoy escribiendo mensajes de error a un archivo de registro y que cada vez es bastante grande, ya que los errores en las restricciones únicas en el PP. Eso está bien y en realidad quiere que lo haga, así que mi pregunta es, ¿cómo puedo evitar escribir los errores de clave duplicados en el archivo de registro cada vez que suceden?

 except Exception as err: 
       logger.error('FunctionName: %s', err) 

Gracias, Adam

Respuesta

7

psycopg pasa el código de error de PostgreSQL junto con la excepción en el atributo pgcode: puede comprobar que el error está realmente relacionado con una violación única y evitar la tala de ellos. Por ejemplo:

try: 
    cursor.execute("...") 
except psycopg2.IntegrityError as err: 
    if err.pgcode != '23505': 
     logger.error('FunctionName: %s', err) 
except Exception as err: 
    logger.error('FunctionName: %s', err) 
+0

Muchas gracias !!! – aeupinhere

+2

http://www.postgresql.org/docs/8.1/static/errcodes-appendix.html – aeupinhere

Cuestiones relacionadas