Me gustaria usar
java.util.Optional.orElseThrow()
con un tipo de excepción que solicita un parámetro constructor. Algo como esto:
.orElseThrow(MyException::new(someArgument)) // obviously NOT working
¿Hay alguna manera de crear un Proveedor que pase el valor de mi argumento?
java
java-8
java-stream
mdo
fuente
fuente

orElseThrow(() -> new MyException(someArgument))?Respuestas:
Por supuesto.
fuente
Parece que solo puede lanzar RuntimeException del método
orElseThrow. De lo contrario, recibirá un mensaje de error comoMyException cannot be converted to java.lang.RuntimeExceptionActualización : - Este era un problema con una versión anterior de JDK. No veo este problema con las últimas versiones.
fuente
Optionalen groovy. Intentandothrow Exceptiondesde un cierre maravilloso, pero fallójava.lang.reflect.UndeclaredThrowableException, cambiando a unRuntimeExceptionfijo.Optional.orElseThrowcual dice que puede lanzar unThrowableque significa unoErroro cualquieraException.fuente