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")
}
未来1
に成功した場合、私はそれが失敗したが場合、私は別のException
にException
を変更したい、それを維持したいと思います。
私が思い付くことができる最高の変換である、しかしそれは、成功事例のために不要な機能を作るために私を必要とします。
val f2 = f.transform(s => s, cause => new Exception("Something went wrong", cause))
にはmapFailure(PartialFunction[Throwable,Throwable])
はありません何らかの理由はありますか?
変換は正しい方法です。 s => s関数を作成する必要はありません。単に '' identity''を渡すだけです。 –
乾杯。私は 'identity'関数について知らなかった。それが便利になる場所が増えてくるだろうと確信しています。 – theon