【Java】Optional変数のifPresentOrElseメソッドを使用してExceptionを投げたい

ifPresentOrElse メソッドはJavaの Optional クラスで利用できるメソッドであり、値が存在する場合と存在しない場合の2つの異なるコードパスを提供します

ただし、このメソッドは値が存在する場合に実行されるコードと、値が存在しない場合に実行されるコードを指定することができますが、例外処理を直接投げることはできません

例外処理を行いたい場合は通常の if 文や orElseThrow メソッドを使用するか、ifPresentOrElse ブロック内で例外をスローするメソッドを呼び出すなどの方法を検討することが一般的です

Optional<String> optionalValue = Optional.ofNullable(getSomeValue());

optionalValue.ifPresentOrElse(
    value -> {
        // 値が存在する場合の処理
        if (value.equals("error")) {
            throw new SomeException("Error occurred");
        }
        System.out.println("Value: " + value);
    },
    () -> {
        // 値が存在しない場合の処理
        throw new SomeException("Value not present");
    }
);

上記の例では、ifPresentOrElse メソッドの第一引数には値が存在する場合の処理、第二引数には値が存在しない場合の処理が指定されています

値が存在する場合の処理内で特定の条件が満たされた場合に例外をスローしています
同様に、値が存在しない場合の処理内でも例外をスローしています

このようにしてifPresentOrElse メソッドを使用しつつ、例外処理を行うことが可能です

ぜひお試しください!!


是非フォローしてください

最新の情報をお伝えします