Quanta registrazione devo fare in produzione per SQLExcpetions?

5

Sto scrivendo una piccola applicazione database-based in Java Swing che verrà utilizzata internamente in una piccola azienda. Non ho molta esperienza nello sviluppo di applicazioni a livello di produzione.

Non uso un ORM, solo alcuni semplici metodi che eseguono query SQL con JDBC Java. Su ogni metodo che accede al database, utilizzo un'istruzione try-catch per SQLException e IOException . Devo fare qualche registrazione qui? Nel caso in cui dovrei, quanto dovrei registrare? Per favore, dammi esempi di buone pratiche in questo caso.

    
posta Jonas 27.09.2010 - 12:30
fonte

2 risposte

8

Due aspetti principali del sistema di produzione sono:

  1. Non far saltare in aria i registri con informazioni che non sono interessanti
  2. Permetti di aumentare il livello del registro per la risoluzione dei problemi.

Utilizza una specie di infrastruttura di logging. Se l'eccezione può verificarsi durante l'operazione normale , segnalarla a livello di debug. Se si tratta di un problema reale, segnalalo a livello di errore. In entrambi i casi, avrai modo di risolvere il problema alzando il livello del registro.

Inoltre, quando segnali un'eccezione assicurati sempre che sia stampata l'intera traccia dello stack + le eccezioni interne.

    
risposta data 27.09.2010 - 14:25
fonte
0

IMHO, ecco il minimo che dovresti fare. Presumo che tu stia utilizzando 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
}
    
risposta data 27.09.2010 - 12:53
fonte

Leggi altre domande sui tag