본문 바로가기

Spring/Spring Boot(스프링 부트)

Optional .orElseThrow(Function) 사용법

728x90

개요

값이 없다면 에러가 나게 코드를 짜는 패턴은 흔하게 등장합니다. 에러를 나게 할 때마다 if조건을 넣어서 특정 조건일때 혹은 아닐때 에러가 나게 한다면 에러처리가 귀찮고 잘 안하게 됩니다.

 

하지만 orElseThrow()를 쓴다면 이 작업이 조금 편해져서 에러에 대해 생각할 시간과 인내심을 확보 할 수 있습니다.

 

아래 orElseThrow()를 쓰는 경우와 안쓰는 경우를 비교해보시기 바랍니다.

 

orElseThrow()쓰는 경우

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Stack;

public class StTest {
    public static String get() throws Exception {
        Optional<String> opt = Optional.of("hello");
        return opt.orElseThrow(() -> new Exception("ohlcv result set null"));
    }

    public static void main(String[] args) throws Exception {
        String hello = get();
        System.out.println(hello);

    }
}

 

아래 한줄이 핵심 입니다.

return opt.orElseThrow(() -> new Exception("ohlcv result set null"));

물론 여기에서는 Optional의 사용법을 알긴 해야 합니다만 Java8부터는 Optional을 권장 하고 있기도 하고 점점 쓰는 추세라서 익혀놓으면 좋겠지요.

 

orElseThrow()안쓰는 경우

orElseThrow()를 안쓰면 아래와 같이 if else등을 써서 error를 내주어야 합니다.

public class OptElse {
    public static String get(String param) throws Exception {
        if ("".equals(param)){
            throw new Exception("no hello.");
        }else{
            return param + "!";
        }
    }

    public static void main(String[] args) throws Exception {
        String hello = get("hello");
        System.out.println(hello);
    }
}

 

 

end.

 

728x90
블로그 주인장입니다. 원하시는 정보는 얻으셨나요? 이 포스트에서 추가로 필요한 정보가 있으시면 여기에 남겨주세요.