orElseThrow

헨도·2024년 6월 27일
0

SpringBoot

목록 보기
5/23
post-thumbnail

차장님이 작성하신 코드를 바탕으로 코드 분석을 하는 중인데, 메뉴 수정 기능 코드 중 orElseThrow 를 발견했다.
내가 사용한 코드는 orElse() 를 사용하여 null 을 걸러내는 방식으로 사용해봤는데, orElseThrow 는 처음 접해보는 코드라 알아보았다.

Optional

orElse, orElseThrow 사용하기 전, Optional 개념을 알아야한다.

자바에서 Null 참조 시, NullPointerException 을 방지해주는 클래스

  • Optional.of() 메소드는 들어올 데이터가 절대 Null 이 아닌 경우에만 사용하는데, Null 이 들어가면 NullPointerException 발생한다.

Optional 의 목적

자바 개발 시, NullPointerException 이 너무 자주 발생해서 데이터가 Null 이어도 처리가 가능하도록 도와주는 것이다.

orElseThrow

  • orElseThrow 는 Optional 의 인자가 null 일 경우, 예외처리를 시킨다.

사용법

Menu menu = menuRepository.findById(menuId)
			.orElseThrow() -> new MenuException("Menu not exits");
  • 보통 JPA 사용 시, 위처럼 사용하는데 가져온 값이 Null 일 경우 예외를 발생시킨다.
profile
Junior Backend Developer

0개의 댓글