dao, 서비스 및 컨트롤러의 세 가지 계층 Spring 웹 앱이 있습니다. 컨트롤러는 dao를 직접 호출하지 않으며 서비스 계층을 통해 수행합니다. 현재 대부분의 경우 처리되지 않은 dao 예외 (런타임)가 있으면 최종 사용자에게 오류 메시지를 표시하는 JSP에 의해 포착됩니다. 서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까?
try {
daoInstance.someDaoMethod();
} catch(DataAccessException dae) {
throw new ServiceException("message", dae);
}
ServiceException도 런타임이고 처리되지 않는다고 가정 해 봅시다. ServiceException 대신 DataAccessException을 던지는 차이점이 있습니까? 프레젠테이션 레이어가 데이터 액세스 예외에 대해 알아야한다고 생각했습니다. 그러나 나는 그것을 막기 위해 회복 할 수없는 예외를 잡는 요점을 보지 못합니다.