저번 포스팅에서는 제가 exception 코드를 어떻게 구현했는지 설명했습니다.
이번 포스팅에서는 구현한 exception 코드를 어떻게 적용하였는지 알아보겠습니다!
저는 아래에 첨부한 API를 통해 어떻게 exception 을 적용하였는지 설명하겠습니다!
*MemberService
public void buyLotto(Long id, int count) {
Member member = memberRepository.findById(id)
.orElseThrow(NotFoundMemberException::new);
member.updateMoney(count);
MemberLotto memberLotto = new MemberLotto(member);
memberLottoRepository.save(memberLotto);
memberLotto.updateLottoCount(count);
}
저는 로또 구매 API 를 구현하기 위해 MemberService에 다음과 같은 코드를 작성하였습니다.
먼저, 1. 유저를 꺼내오고 2. 꺼내온 유저의 돈을 계산하고 3. MemberLotto 클래스에 해당 값들을 저장하는 형식으로 구현하였습니다.(MemberLotto 클래스에 대해서는 따로 포스팅하겠습니다!)
여기서 저는 1번 항목에 exception을 구현하였습니다. 찾으려는 유저가 없을 때 예외를 발생시키도록 하였습니다.
*CustomErrorCode
USER_NOT_FOUND_EXCEPTION(404, "유저 없음.")
저는 해당 API 에서 위와 같은 예외처리 메세지가 나오도록 코드를 추가하였습니다!
*NotFoundMemberException
public class NotFoundMemberException extends CustomException {
public NotFoundMemberException() {
super(CustomErrorCode.USER_NOT_FOUND_EXCEPTION);
}
}
참 간단하죠??
에러 코드를 관리하는 CustomErrorCode 클래스에서 위에서 선언해준 에러 코드를 정해주기만 하면 됩니다.
(제가 에러 코드를 어떻게 구현하였는지는 이 전 포스팅을 통해 보실 수 있습니다!)
*결과
실제로, 서버를 실행시켰을 때 postman 을 통해 제가 직접 커스텀한 에러 메세지가 잘 나오는 것을 볼 수 있습니다.
400 Bad Request 인데, 제가 404로 처리하였네요...ㅎㅎ 에러 코드에 관해서도 더 공부해야겠습니다.
'스프링 > 미션' 카테고리의 다른 글
[Spring] lotto - API 서버 구현(2) (1) | 2024.10.05 |
---|---|
[Spring] lotto - API 서버 구현(1) (0) | 2024.10.05 |
[Spring] lotto - exception 구현 (0) | 2024.10.04 |
[Spring] lotto - 도메인 로직 구현 (0) | 2024.10.02 |
[Spring] lotto - 기능 구현 목록 작성에 대한 중요성 (1) | 2024.10.02 |