Try catch en inserci贸n en base de datos
Buenas
Cuando realizo una inserción en una tabla y el registro ya existe me devuelve el error típico de clave duplicada y que no se ha podido insertar. Hasta ahí todo ok, pero quiero realizar el catch de esta excepción y que no me lanze toda la traza en la consola.
Este sería el error tipico (no esta completo, es muy largo):
SQLException e1
conn.rollback()
com.microsoft.sqlserver.jdbc.SQLServerException: Infracción de la restricción PRIMARY KEY 'PK_Cuestionario'. No se puede insertar una clave duplicada en el objeto 'dbo.Cuestionario'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
........
El código es muy simple:
stInsert = conn.createStatement();
catch (SQLException e1) {
// TODO Auto-generated catch block
System.out.println("SQLException e1");
try {
System.out.println("conn.rollback()");
conn.rollback();
} catch (SQLException sqx) {
throw new Exception("Ha fallado el rollback: "
+ sqx.getMessage());
}
e1.printStackTrace();
}
Gracias
Cuando realizo una inserción en una tabla y el registro ya existe me devuelve el error típico de clave duplicada y que no se ha podido insertar. Hasta ahí todo ok, pero quiero realizar el catch de esta excepción y que no me lanze toda la traza en la consola.
Este sería el error tipico (no esta completo, es muy largo):
SQLException e1
conn.rollback()
com.microsoft.sqlserver.jdbc.SQLServerException: Infracción de la restricción PRIMARY KEY 'PK_Cuestionario'. No se puede insertar una clave duplicada en el objeto 'dbo.Cuestionario'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
........
El código es muy simple:
stInsert = conn.createStatement();
catch (SQLException e1) {
// TODO Auto-generated catch block
System.out.println("SQLException e1");
try {
System.out.println("conn.rollback()");
conn.rollback();
} catch (SQLException sqx) {
throw new Exception("Ha fallado el rollback: "
+ sqx.getMessage());
}
e1.printStackTrace();
}
Gracias