scala中失败的最干净的方法是map
什么?Exception
Future
说我有:
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
val f = Future {
if(math.random < 0.5) 1 else throw new Exception("Oh no")
}
如果 Future 成功了1
,我想保留它,但是如果它失败了,我想将它更改Exception
为不同的Exception
.
我能想到的最好的方法是转换,但这需要我为成功案例创建一个不必要的函数:
val f2 = f.transform(s => s, cause => new Exception("Something went wrong", cause))
有什么理由没有mapFailure(PartialFunction[Throwable,Throwable])
吗?