본문 바로가기
Spring과 진짜 초면인 우리들에게

[Optional 시리즈 1부] Optional 에 값이 있니? or ElseThrow ?

by eddy0223 2023. 5. 22.
Spring과 진짜 초면인 우리

 

있을수도 없을수도

[Optional 시리즈 1부]... 라고 거창하게 시작해보다

 

orElseThrow Java 8부터 도입된 Optional 클래스의 메서드 하나입니다!

Optional 값의 존재 여부를 나타내는 컨테이너 클래스로서, 값이 존재할 수도 있고 없을 수도 있음을 표현할 있죠~

 

orElseThrow 메서드는 'Optional 객체에 값이 존재할 경우 해당 값을 반환'하고,

'값이 존재하지 않을 경우 지정된 예외' 발생시십니다

 

즉, Optional 객체에서 값을 안전하게 가져오거나 지정된 예외 처리를 수행할 있어요!

(개인적으로 많이 애용하고 있는 메서드랍니다)

orElseThrow 메서드의 사용법 알아보고 가실게요~

Optional 객체에서 값이 존재하는 경우 해당 값을 반환하고,
값이 존재하지 않는 경우 NoSuchElementException 예외를 발생시키는 예제입니다 :

Optional<String> optionalValue = Optional.ofNullable("Hello");

String value = optionalValue.orElseThrow(NoSuchElementException::new);

위의 예제에서 optionalValue는 값이 "Hello"인 Optional 객체를 가리킵니다
orElseThrow 메서드를 사용하여 값을 가져오는데, 값이 존재하므로 해당 값을 반환합니다

하지만 값이 없는 경우에는 NoSuchElementException 예외가 발생합니다!!

orElseThrow 사용하여 Optional 객체에서 값의 존재 여부를 확인하고 예외 처리를 수행할 있으므로,
NullPointerException 등의 예외를 방지하고 코드 안정성을 높일 있겠네요 👍👍

 

Optional의 다른 메서드 친구들은 다음에 알아보도록 할게요~ bye