728x90
-
아래 try 구문 안의 if문에서 throw new Exception("오늘 이미 사과를 먹었습니다..");
구문은 정상적으로 동작 한다.<Service 로직 - AppleServiceImpl.java>
public String insertApple(AppleVO vo) throws Exception { String returnMsg = ""; String AppleDay = ""; try { int cnt = 0; if(vo.getApple() != null) { //select 문 호출 vo.setApple(vo.getApple()); cnt = dao.checkAppleCount(vo); if(cnt > 0) { throw new Exception("오늘 이미 사과를 먹었습니다.."); } } } catch (Exception e) { returnMsg = e.getMessage(); throw e; } return returnMsg; }
-
하지만 void 함수에서는 catch 구문의 throw e; 에서 에러가 발생한다.
public void insertApple(AppleVO vo) throws Exception { String returnMsg = ""; String AppleDay = ""; try { int cnt = 0; if(vo.getApple() != null) { //select 문 호출 vo.setApple(vo.getApple()); cnt = dao.checkAppleCount(vo); if(cnt > 0) { throw new Exception("오늘 이미 사과를 먹었습니다.."); } } } catch (Exception e) { returnMsg = e.getMessage(); throw e; ---> 이 부분 에러 !!!!! }
이 경우, void 함수를 return 가능한 함수로 변경해주면 되긴 하지만,
기존 다른 곳에 영향을 줄 수 있어 무식하지만 대안법을 찾아 내었다.
controller 에서 위 구문을 적용하여 처리하면 되었다.
<Controller Logic - AppleController.java>
private HashMap update(AppleVO vo) {
HashMap returnMap = new HashMap();
try{
int cnt = 0;
if(vo.getApple() != null) {
//select 문 호출
vo.setApple(vo.getApple());
cnt = dao.checkAppleCount(vo);
if(cnt > 0) {
throw new Exception("오늘 이미 사과를 먹었습니다..");
}
}
service.updateApple(vo);
}catch(Exception e){
returnMap.put("successYN", "N");
returnMap.put("msg", e.getMessage());
}
return returnMap;
}
* 물론 당연하게도, 비즈니스 Logic 은 Service Logic에서 처리하는 것이 맞다고 알고 있다.
하지만, 필자는 기존 void 함수를 수정하고 싶지 않았기에, 이것저것 찾아보다가 위 대안법을 알게 되었다.
위 Source Code 는 예제라서 실행은 안될 겁니다. 당연하게도....;;;
--> 이런 무식 방법이 아닌 다른 대안법이 있으시면, 댓글로 가르침 부탁 드립니다.
초보라서 우선 대안법으로 처리 하였습니다.
'IT > Spring MVC' 카테고리의 다른 글
pom.xml 공부 해보자!! (완료) (0) | 2021.05.10 |
---|---|
Spring MVC HTML code 치환 (0) | 2020.12.03 |
Eclpise 내 Tomcat 서버 사용 시 debugging port 설정 (0) | 2020.12.03 |