Я пытаюсь найти управляемый способ обработки исключений в DAO. Обычно метод в моем DAO выглядит так:
public ArrayList fetchColors (String id)
{
//call iBatis SqlMapClient
//put results in a list
//return list
}
Если в приведенном выше коде происходит ошибка, то все записывается в server.log
, и на первой странице отображается экран пользовательских ошибок. Тем не менее, я хочу избежать размещения трассировки стека в server.log, а вместо этого записать его в my_app.log
(я использую log4j).
Итак, я планирую преобразовать вышеуказанный метод в следующий:
public ArrayList fetchColors (String id) throws SqlException
{
try {
//call iBatis SqlMapClient
//put results in a list
}
catch (SqlException e)
{
logger.log (e);
throws e;
}
//return list
}
Вопросы:
- Это лучший способ решить проблему?
- У меня есть много методов в DAO, и выполнение вышеупомянутого для каждого метода будет PITA. Есть ли более простой способ сделать это так же, как и все методы в DAO?