Pregunta

Estoy escribiendo una pequeña aplicación centrada en la base de datos en Java Swing que se utilizará internamente en una pequeña empresa. No tengo mucha experiencia en el desarrollo de aplicaciones de nivel de producción.

No uso un ORM, solo algunos métodos simples que ejecutan consultas SQL con Java JDBC. En cada método que accede a la base de datos, uso un try-catch declaración para SQLException y IOException. ¿Debería hacer algún registro aquí? En caso de que debería, ¿cuánto debo registrar? Por favor, dame ejemplos de buenas prácticas en este caso.

¿Fue útil?

Solución

Dos cosas principales en el sistema de producción son:

  1. No explote los registros con información que no es interesante
  2. Permitir elevar el nivel de registro para un propósito de solución de problemas.

Use algún tipo de infraestructura de registro. Si la excepción puede ocurrir durante el normal Operación, repórtelo a nivel de depuración. Si es un problema real, infórmelo en el nivel de error. De cualquier manera, tendrá una forma de solucionar el sistema al elevar el nivel de registro.

Además, cuando informa una excepción, siempre asegúrese de que se impriman todas las excepciones internas de Stack Trace +.

Otros consejos

En mi humilde opinión, aquí está el mínimo que debes hacer. Supongo que estás usando Log4j.

try
{
   // open connection

   // begin transaction

   // my database stuff

   // commit transaction
}
catch (SQLException ex)
{
   log.Error("An error occured while ...: " + ex.Message, ex);
   // do stuff related to SQLException

   // rollback transaction
}
catch (IOExcpetion ex)
{
   log.Error("An error occured while ...: " + ex.Message, ex);
   // do stuff related to IOException

   // rollback transaction
}
catch (Exception ex)
{
    log.Error("An error occured while ...: " + ex.Message, ex);
    // manage this unhandled exception

    // rollback transaction
}
finally
{
   // close connection
}
Licenciado bajo: CC-BY-SA con atribución
scroll top