Domanda

Sto scrivendo una piccola applicazione di database-centric in Java swing che sarà utilizzato internamente in una piccola azienda. Non ho molta esperienza con lo sviluppo di applicazioni a livello di produzione.

Non faccio uso di un ORM, a pochi semplici metodi che le query SQL con Java run JDBC. Su ogni metodo che l'accesso al database che uso una dichiarazione try-catch per SQLException e IOException. Dovrei fare qualsiasi registrazione qui? Nel caso in cui avrei dovuto, quanto dovrei registrare? Per favore mi dia esempi di buone pratiche in questo caso.

È stato utile?

Soluzione

Due cose principali nel sistema di produzione sono:

  1. Non saltare in aria i registri con le informazioni che non è interessante
  2. Lasciare che l'innalzamento del livello di registro per la risoluzione dei problemi scopo.

Usa un qualche tipo di infrastruttura di logging. Se l'eccezione può verificarsi durante la normale il funzionamento, segnalarlo a livello di debug. Se si tratta di un problema reale, segnalarlo a livello di errore. In entrambi i casi si avrà un modo per risolvere i problemi del sistema, aumentando il livello di log.

Inoltre - quando si segnala un'eccezione sempre assicurarsi che i l'intero stack trace + eccezioni interne sono stampati

.

Altri suggerimenti

IMHO, qui è il minimo che si dovrebbe fare. Presumo che si sta 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
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top