Сколько журналов я должен сделать на производстве для SQLexCpetions?
https://softwareengineering.stackexchange.com/questions/7539
-
16-10-2019 - |
Вопрос
Я пишу небольшое приложение, ориентированное на базу данных в Java Swing, которое будет использоваться внутри в небольшой компании. У меня мало опыта в разработке приложений на уровне производства.
Я не использую ORM, всего лишь несколько простых методов, которые запускают запросы SQL с Java JDBC. На каждом методе, который получаю доступ к базе данных, я использую try-catch
Заявление для SQLException
а также IOException
. Анкет Стоит ли мне делать какую -нибудь журнал здесь? Если я должен, сколько мне следует войти в систему? Пожалуйста, приведите мне примеры хорошей практики в этом случае.
Решение
Две основные вещи в производственной системе:
- Не взорвать журналы информацией, которая не интересна
- Разрешить повышение уровня журнала для устранения неполадок.
Используйте какую -то инфраструктуру журнала. Если исключение может произойти во время обычный Операция, сообщите об этом на уровне отладки. Если это реальная проблема, сообщите об этом на уровне ошибок. В любом случае у вас будет способ устранить неполадок, повышая уровень журнала.
Кроме того - когда вы сообщаете об исключении, всегда убедитесь, что весь стек Trace + Внутренние исключения напечатаны.
Другие советы
ИМХО, вот самый минимум, который вы должны сделать. Я полагаю, вы используете 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
}