[java] 에러Handler

공부기록·2023년 11월 22일
0
post-thumbnail

📑미션 추가 API

Store에 리뷰를 추가하려는 작업을 하려한다. 리뷰작성이 가능하려면 받아온 store_id가 유효한지와 해당 가게가 정상영업중인지 확인해야한다.
boolean을 반환하며 정상영업시 true, 폐업시 false를 반환한다.

Store store= storeRepository.findById(storeId)
                .orElseThrow(()-> FoodCategoryHandler(ErrorCode._BAD_REQUEST));
if (store.getState() == false){
	throw new IllegalStateException("da")
}
  • orElseThrow()를 이용하여 예외를 처리하고 store의 state를 확인하여 성공시 Store를 생성, 실패시 예외처리를 해준다.

📃 좀 더 간결한 코드 작성

  • 예외처리를 위하여 에러를 추가해주었다.
/* class StoreHandler 中 일부 */
public class StoreHandler extends GeneralException {
    public StoreHandler(BaseErrorCode errorCode) {super(errorCode);}
}

/* enum errorStatus 中 일부 */
// 가게 관리 에러
STORE_NOT_EXTIST(HttpStatus.BAD_REQUEST, "STORE4001", "가게가 없습니다."),

/* ReviewCommandServiceImpl.java 中 일부 */
Store store = storeRepository.findByIdAndStateTrue(storeId)
                .orElseThrow(() -> new StoreHandler(ErrorStatus.STORE_NOT_EXTIST));

  • storeId와 state의 유효성 검사를 한 번에 진행할 수 있도록 StoreRepository에 메서드를 생성하여 더 짧게 예외처리를 가능하게한다.
/* StoreRepository.java 中 일부 */
public interface StoreRepository extends JpaRepository<Store, Long> {
    Optional<Store> findByIdAndStateTrue(Long storeId);
}

출처 : UMC 5기 워크북

0개의 댓글

관련 채용 정보