Java 8 Optional orElse orElseThrow inconsistent -


this question has answer here:

if optional[123] , b optional[empty].

a.orelse(b.orelsethrow(() -> new unexpectedinternalexception(                     "error"))) 

why throw?

orelse() method, , before method executed, arguments evaluated. in case evaluation of argument (b.orelsethrow(() -> new unexpectedinternalexception("error"))) throws exception.


Comments