quale sarebbe il modo più idiomatico di recuperare da un futuro fallito
val fut: Future[Option[Int]] = Future.failed(new RuntimeException("Hi, I have failed"))
case class ApplicationException(msg: String) extends RuntimeException(msg)
al take1Fut = fut.recover{
case e: RuntimeException => throw ApplicationException("I have some business value")}
val take2Fut = fut.transform(
identity, {case e: RuntimeException => throw ApplicationException("I have some business value")})
val take3Fut = fut.fallbackTo(
Future.failed(ApplicationException("I have some business value")))
O c'è qualche altro, più idiomatico? Personalmente, preferisco take1Fut