it-swarm-es.com

¿Cuánta registro debo hacer en la producción para SQLException?

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

No uso un ORM, solo unos pocos métodos simples que ejecutan las consultas SQL con Java JDBC. En cada método que acceda a la base de datos, utilizo una declaración try-catch Para SQLException y IOException. ¿Debo hacer algún registro aquí? En caso de que debería, ¿cuánto debo iniciar sesión? Por favor, dame ejemplos de buenas prácticas en este caso.

5
Jonas

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

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

Use algún tipo de infraestructura de tala. Si la excepción puede ocurrir durante la operación normal, reportelo en el nivel de depuración. Si es un problema real, repórtelo en el nivel de error. De cualquier manera, tendrá una manera de solucionar problemas del sistema elevando el nivel de registro.

Además, cuando informe una excepción, siempre asegúrese de que se imprimen las excepciones a la pila completa +.

8
Hila

Imho, aquí está el mínimo que debes hacer. Supongo que está 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
}
0
user2567