인프런 커뮤니티 질문&답변

해톨님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

예외와 트랜잭션 커밋, 롤백 - 활용

정상처리 예외반환

해결된 질문

작성

·

176

·

수정됨

0

테스트코드에서 정상처리 되었을때 예외를 반환하는데

이 예외는 service에있는 로직을 호출하면 잔고부족 때문에 메서드 자체에서 예외를 던진 것으로 알고있습니다.

근데 만약 테스트에서 테스트 코드가 아니라 진짜 사용을 하는 사용자라면 이 던진 예외는 어떻게 처리가 되는것인가요 ??

그리고 왜 정상로직에서는 예외를 던지고 잔고부족로직에서는 잡는지 궁금합니다. 정상로직에서는 잡으면 안되는 것인가요 ?

답변 1

2

안녕하세요. 해톨님, 공식 서포터즈 David입니다.

정상처리 되었을 땐 예외를 반환하지 않습니다.

문맥상 예외를 반환한다라고 작성하신 부분이 메서드 시그니처에 throw NotEnoughMoneyException 을 작성하는걸로 이해했습니다. throw NotEnoughMoneyException 를 정상처리에 대한 테스트의 메서드 시그니처에 붙여주는 이유는 orderService 내에서 NotEnoughMoneyException이 발생하기 때문입니다.

혹시 이 부분이 이해되지 않으신다면 김영한의 실전 자바 - 중급 1편의 예외처리 파트를 수강해 주세요.

 

잔고부족 테스트에서 NotEnoughMoneyException 을 잡아서 처리하는 이유는 해당 예외가 잘 터졌는지 로그를 찍어서 보기 위함입니다. 만약 해당 로직이 사용자에게 서비스 되고 있는 중이라면 NotEnoughMoneyException예외가 터졌을 때 외부에서 해당 예외를 잡아서 처리하는 로직이 있어야 합니다. 예를 들어, 테스트에서 try catch로 잡은 것과 같이요.

감사합니다.

해톨님의 프로필 이미지
해톨
질문자

감사합니다 !

해톨님의 프로필 이미지

작성한 질문수

질문하기