해결된 질문
작성
·
176
·
수정됨
0
테스트코드에서 정상처리 되었을때 예외를 반환하는데
이 예외는 service에있는 로직을 호출하면 잔고부족 때문에 메서드 자체에서 예외를 던진 것으로 알고있습니다.
근데 만약 테스트에서 테스트 코드가 아니라 진짜 사용을 하는 사용자라면 이 던진 예외는 어떻게 처리가 되는것인가요 ??
그리고 왜 정상로직에서는 예외를 던지고 잔고부족로직에서는 잡는지 궁금합니다. 정상로직에서는 잡으면 안되는 것인가요 ?
답변 1
2
안녕하세요. 해톨님, 공식 서포터즈 David입니다.
정상처리 되었을 땐 예외를 반환하지 않습니다.
문맥상 예외를 반환한다라고 작성하신 부분이 메서드 시그니처에 throw NotEnoughMoneyException
을 작성하는걸로 이해했습니다. throw NotEnoughMoneyException
를 정상처리에 대한 테스트의 메서드 시그니처에 붙여주는 이유는 orderService 내에서 NotEnoughMoneyException이 발생하기 때문입니다.
혹시 이 부분이 이해되지 않으신다면 김영한의 실전 자바 - 중급 1편의 예외처리 파트를 수강해 주세요.
잔고부족 테스트에서 NotEnoughMoneyException
을 잡아서 처리하는 이유는 해당 예외가 잘 터졌는지 로그를 찍어서 보기 위함입니다. 만약 해당 로직이 사용자에게 서비스 되고 있는 중이라면 NotEnoughMoneyException
예외가 터졌을 때 외부에서 해당 예외를 잡아서 처리하는 로직이 있어야 합니다. 예를 들어, 테스트에서 try catch로 잡은 것과 같이요.
감사합니다.
감사합니다 !