Search

38. 스프링부트 포토그램 구독하기 예외처리하기

포토그램 구독하기

postman으로 테스트 하기전에 DB에 유저 데이터가 없기 때문에
3명을 가입시켜주자
ssar / cos / love 이렇게 가입시켜준다
포스트맨에서 구독테스트 전에 로그인을 미리해줘야지 구독하기 테스트가 가능하다.
로그인 먼저 해본다
밑에 메인화면 소스라서 로그인 성공한걸 알 수 있다.
둘다 구독하기 성공했다
근데 같은걸 다시 구독하면
500 에러가 난다
에러를 잡아 줄 핸들러를 생성해준다
handler 폴더 안 ex 폴더 안에 CustomApiException.java 생성
(기존의 CustomValidationApiException.java를 복사해서 붙여넣고 명만 바꿔준다)
package com.cos.photogramstart.handler.ex; public class CustomApiException extends RuntimeException { private static final long serialVersionUID = 1L; public CustomApiException(String message) { super(message); } }
Java
복사
SubscribeService.java
@Transactional public void 구독하기 (int fromUserId, int toUserId) { try { subscribeRepository.mSubscribe(fromUserId, toUserId); } catch (Exception e) { throw new CustomApiException("이미 구독을 하였습니다."); } }
Java
복사
구독하기에 try catch로 잡아준다
취소하기같은 경우는 오류날일이 없어서 안잡아줘도 된다.
ControllerExceptionHandler.java에 CustomApiException의 핸들러를 추가해준다
@ExceptionHandler(CustomApiException.class) public ResponseEntity<CMRespDto<?>> apiException(CustomApiException e) { return new ResponseEntity<>(new CMRespDto<>(-1,e.getMessage(),null), HttpStatus.BAD_REQUEST); }
Java
복사
서버 재기동 됐으니까 다시 포스트맨에서 로그인 후 구독 테스트 진행

*참고