Question

J'écris une petite application de base de données centrée sur Java Swing qui sera utilisé en interne dans une petite entreprise. J'ai pas beaucoup d'expérience avec le développement d'applications de niveau de production.

Je n'utilise pas un ORM, à seulement quelques méthodes simples d'exécuter des requêtes SQL avec Java JDBC. Sur toutes les méthodes que l'accès la base de données que j'utilise une déclaration de try-catch pour SQLException et IOException. Dois-je faire une exploitation forestière ici? Dans le cas où je devrais, combien dois-je me connecter? S'il vous plaît me donner des exemples de bonnes pratiques dans ce cas.

Était-ce utile?

La solution

Deux choses principales dans le système de production sont:

  1. Ne pas faire exploser les journaux avec des informations qui ne sont pas intéressant
  2. Permet d'élever le niveau de journal pour le dépannage fin.

Utiliser une sorte d'une infrastructure de l'exploitation forestière. Si l'exception peut se produire pendant l'opération normale , signalez au niveau de débogage. Si c'est un vrai problème, il compte dans le niveau d'erreur. De toute façon, vous aurez un moyen de résoudre le système en augmentant le niveau de journal.

En outre - lorsque vous déclarez une exception toujours que les l'ensemble trace de pile + exceptions intérieures sont imprimées

.

Autres conseils

à mon humble avis, voici le très minimum que vous devriez faire. Je suppose que vous utilisez 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
}
Licencié sous: CC-BY-SA avec attribution
scroll top