gpt4 book ai didi

斯卡拉 : Understanding Future. 恢复

转载 作者:行者123 更新时间:2023-12-01 02:44:25 28 4
gpt4 key购买 nike

我正在玩弄Future.recover(如果它有任何重要性的话,通过 intelJ 中的 scala 表)

import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global

def get():Future[Int] = {
throw new ClassCastException
}

val n = get().map{
x => x + 1

}.recover{
case e: Throwable => print("we recovered")
0
}

n.map(print(_)) // not getting here

我期待打印 0。然而,这就是我得到的:

java.lang.ClassCastException
at #worksheet#.get(test.sc:5)
at #worksheet#.n$lzycompute(test.sc:8)
at #worksheet#.n(test.sc:8)
at #worksheet#.get$$instance$$n(test.sc:8)
at A$A76$.main(test.sc:32)
at #worksheet#.#worksheet#(test.sc)

为什么我的recover 不起作用。我是不是用错了?

最佳答案

您的 get 函数不返回 Future。它只是立即抛出 ClassCastException。您需要在某处创建Future

将您的 get 函数更改为:

def get(): Future[Int] = Future {
throw new ClassCastException
}

关于斯卡拉 : Understanding Future. 恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557846/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com