자바 개발을 하다 보면 코드에서 Exception이 예상 되는 부분에서
예외처리를 해주게 되는데, 이때 테스트를 위해 직접 Execption을 발생시켜
테스트를 해볼 수 있는 경우가 있습니다.
class ExceptionEx
{
public static void main(String args[])
{
try {
// throw로 예외를 발생시킬 수 있습니다.
throw new Exception("예외를 강제로 발생시켰습니다.");
} catch (Exception e) {
System.out.println("에러 메시지 : " + e.getMessage());
e.printStackTrace();
}
System.out.println("프로그램이 정상 종료되었음.");
}
}
오늘 사이드 프로젝트를 진행하다 예외를 발생시켜 메시지를 보내야할 경우가 있는데
그 경우를 예제로 이용하여 예외 발생을 살펴봅니다
자바 키워드 throw를 사용하여 강제 예외 발생을 할 수 있습니다.
service 로직에서 발생한 예외로 가입코드가 다를 경우 예외를 발생시킵니다.
// service.메서드 public void groupJoin(StudyMember studyMember,String code) throws Exception { long sno = studyMember.getSno(); String joincode = studyDao.getJoinCode(sno); if (code.equals(joincode)) { studyDao.groupJoin(studyMember); } else { throw new Exception("가입코드가 틀립니다"); } }
service에서 받은 예외를 controller가 ResponseEntity타입으로 클라이언트에게 "가입코드가 틀립니다"의 메시지를 전달할 수 있게 해주었습니다.
@ResponseBody @RequestMapping(value="/study/join", method=RequestMethod.POST) public ResponseEntity<String> joinGroup(String code, StudyMember studyMember, HttpSession session) { String id = (String) session.getAttribute("loginedMemberId"); studyMember.setId(id); ResponseEntity<String> entity = null; try { studyService.groupJoin(studyMember,code); entity = new ResponseEntity<String>("SUCCESS",HttpStatus.OK); } catch (Exception e) { e.printStackTrace(); entity = new ResponseEntity<> (e.getMessage(),HttpStatus.BAD_REQUEST); } return entity; }
'JAVA' 카테고리의 다른 글
생성자에 매개변수가 많다면 빌더를 고려하라. (0) | 2022.07.24 |
---|---|
생성자 대신 정적 팩터리 메서드를 고려하라. (0) | 2022.07.10 |
자바 커스텀 어노테이션 만들기 (0) | 2020.08.02 |