Какова наилучшая практика обработки исключений при возникновении ошибки в разных слоях.Лучшая практика - обработка исключений в служебных/дао/бизнес-слоях
У меня есть 4 слоя кода - DAO, SERVICE, BUSINESS, PRESENTATION. Я пытаюсь поймать некоторое исключение времени выполнения на уровне dao и хочу, чтобы он отображался на уровне презентации с некоторым сообщением. Подходит ли подход ниже?
Здесь, в фрагментах кода - DataException - мой класс исключений во время выполнения. Классы исключений для служебного и бизнес-класса - это мои проверенные классы реализации исключений.
Фрагменты кода ниже:
В дао слое, метод проверяет некоторое значение из базы данных
class dao{
public User getUser() throws DataException{
User user = null;
try
{
//some operation to fetch data using hibernatetemplate
}catch(Exception ex){
throw new DataException(ex.getMessage());
}
return user;
}
}
service.java
class service{
public User getUser(String username) throws ServiceException{
User user = null;
try
{
//some operation to fetch data using dao method
dao.getuser(username);
}catch(DataException ex){
throw new ServiceException(ex.getMessage());
}
return user;
}
}
business.java
class business{
public User getUser(String username) throws BusinessException{
User user = null;
try
{
//some operation to fetch data using dao method
service.getuser(username);
}catch(ServiceException ex){
throw new BusinessException(ex.getMessage());
}
return user;
}
}
В pre sentation слой, пусть это будет класс контроллера
class Presentation{
public User getUser(String username) throws BusinessException{
User user = null;
//some operation to fetch data using business method
business.getUser(username);
return user;
}
}
Предположит, из сообщения презентации слоя брошен пользователю в передней части страницы JSP ..