Как лучше всего обрабатывать исключения, когда в разных уровнях выдается ошибка.
У меня есть 4 уровня кода - DAO, SERVICE, BUSINESS, PRESENTATION.Я пытаюсь поймать какое-то исключение во время выполнения в слое dao и хочу, чтобы оно отображалось в слое презентации с некоторым сообщением. Подходит ли нижеприведенный подход?
Здесь, во фрагментах кода, DataException - это мой класс исключений во время выполнения. Классы исключений Service и Business - это мои проверенные классы реализации исключений.
Ниже приведены фрагменты кода:
В слое dao, метод проверяет некоторое значение из базы данных
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;
}
}
На уровне представления пусть это будеткласс контроллера
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 внешнего интерфейса.