Foros del Web » Programación para mayores de 30 ;) » Java »

Manejar excepciones en proyecto struts

Estas en el tema de Manejar excepciones en proyecto struts en el foro de Java en Foros del Web. Buenas, Tengo una duda de cómo diseñar excepciones en mi proyecto de struts. Tengo classes Action y Bean. Las clases action ejecutan métodos de las ...
  #1 (permalink)  
Antiguo 04/02/2007, 11:41
 
Fecha de Ingreso: enero-2004
Mensajes: 12
Antigüedad: 20 años, 10 meses
Puntos: 0
Manejar excepciones en proyecto struts

Buenas,

Tengo una duda de cómo diseñar excepciones en mi proyecto de struts. Tengo classes Action y Bean. Las clases action ejecutan métodos de las clases bean, las cáles se conectan con la base de datos.

Suponiendo que intento crear un usuario en una de las páginas y el usuario ya existe. ¿Cuál es la mejor manera de mostrar el error al usuario que intenta crear el nuevo usuario?


1.Lanzar la excepción en la case bean mediante ModuleException de struts y mostrar una página de error general. (No me gusta mucho esta idea…)

2.Antes de ejecutar en la clase action el método crearUsuario del bean, ejecutar otro método que mire si el usuario ya existe. Si existe, usar ActionMessages en la clase action para mostrar el error en la misma página crearUsuario.jsp.

Esto significa que si el usuario no existe, el método de la action class ha´ra dos accesos a la base de datos, uno para chequear si existe el usuario y otro para crearlo.

3.Ejecutar el método crearUsuario del bean utilizando try y finally, pero sin catch y lanzar una SQLException.

public OTDUsuario crearUsuario (String dni, String passwd) throws SQLException
{
try
{
Conexión a la base de datos y resultados
}
finally
{
Cerrar resultSet, statement and connection
}
}

La excepción sera cpgida por el método de la clase action, dónde está el catch(SQLException), el cual recibirá la excepción del método del bean.

java.sql.SQLException: ORA-00001: unique restriction (PK_USER) violated

Y con ActionMessages mostrar el error en la misma página crearUsuario.jsp. Pero, ¿cómo puedo saber cuál es la causa de esta SQLException?:

a) Primary key violada (java.sql.SQLException: ORA-00001: unique restriction (PK_USER) violated)

b) Nombre y apellidos son únicos (java.sql.SQLException: ORA-00001: unique restriction (U_NAME_SURNAME1_SURNAME2_U) violated)

Dependiendo del error que reciba, quiero mostrar “existe clave primaria” o “nombre y apellidos existen con otra clave primaria”

4.Otra sugerencia?

Gracias
  #2 (permalink)  
Antiguo 04/02/2007, 15:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 1 mes
Puntos: 51
Re: Manejar excepciones en proyecto struts

Una idea es usar try catch anidados para saber exactamente que error te ha dado
Código:
try
{
  // Obtener conexion
  try
  {
     // Comprobar si existe el usuario
    if(fueBien)
    {
      try      
      {
        // Insertar usuario
      }
      catch
      {
        // Error insertando usuario
      }
    }
  }
  catch
  {
    // Error comprando si existe el usuario
  }
}
catch
{
  // Error consiguiendo conexion
}
finally
{
  
}
Aunque el código parezca mucho mas "cargado", es una forma de saber exactamente que pasó, en todo momento.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:22.