Funciones de manejo de errores en Python

En ocasiones se producen problemas al intentar conectarse a una base de datos o emitir una sentencia de SQL. Puede que el nombre de usuario o la contraseña sean incorrectos, que un nombre de tabla o columna se haya escrito mal o que la sentencia de SQL no sea válida. La API ibm_db proporciona funciones de manejo de errores para ayudarle a recuperarse sin problemas de las situaciones de error.

Errores de conexión

Utilice una de las funciones listadas para recuperar información de diagnóstico si falla un intento de conexión.

Tabla 1. Funciones de ibm_db para manejar errores de conexión
Función Descripción
ibm_db.conn_error Recupera el SQLSTATE devuelto por el último intento de conexión.
ibm_db. conn_errormsg Recupera un mensaje de error descriptivo adecuado a la anotación cronológica de errores de la aplicación

Errores de SQL

Utilice una de las funciones listadas para recuperar información de diagnóstico si falla un intento de preparar o ejecutar una sentencia de SQL o de captar un resultado de un conjunto de resultados.

Tabla 2. Funciones de ibm_db para manejar errores de SQL
Función Descripción
ibm_db.stmt_error Recupera el SQLSTATE devuelto por el último intento de preparar o ejecutar una sentencia de SQL o de captar un resultado de un conjunto de resultados.
ibm_db.stmt_errormsg Recupera un mensaje de error descriptivo adecuado a la anotación cronológica de errores de la aplicación

Para obtener más información sobre la API ibm_db, consulte http://code.google.com/p/ibm-db/wiki/APIs.

Ejemplo

Ejemplo 1: Manejo de errores de conexión


import ibm_db 
try:
    conn = ibm_db.connect("database","username","password")     
except:     
    print "no connection:", ibm_db.conn_errormsg()
else:
    print "The connection was successful" 

Ejemplo 2: Manejo de errores de SQL


import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "DELETE FROM EMPLOYEE"
try:
   stmt = ibm_db.exec_immediate(conn, sql)
except:
   print "Transaction couldn't be completed:" , ibm_db.stmt_errormsg()
else:
   print "Transaction complete."