차장님이 작성하신 코드를 바탕으로 코드 분석을 하는 중인데, 메뉴 수정 기능 코드 중 orElseThrow 를 발견했다.
내가 사용한 코드는 orElse() 를 사용하여 null 을 걸러내는 방식으로 사용해봤는데, orElseThrow 는 처음 접해보는 코드라 알아보았다.
orElse, orElseThrow 사용하기 전, Optional 개념을 알아야한다.
자바에서 Null 참조 시, NullPointerException 을 방지해주는 클래스
자바 개발 시, NullPointerException 이 너무 자주 발생해서 데이터가 Null 이어도 처리가 가능하도록 도와주는 것이다.
Menu menu = menuRepository.findById(menuId)
.orElseThrow() -> new MenuException("Menu not exits");