之间有什么区别
try {
Future . map { }
} catch {}
和
Future.map {} recover {}
他们不是一回事吗? try如何捕获处理期货中的异常与恢复方法的处理方式。
答案 0 :(得分:3)
当您使用Future
时,您将结果包装在其中,因此异常也会被包装。
这就是为什么这段代码不能打印任何东西:
try { Future(throw new RuntimeException(""))} catch { case ex => println("Got it") }
虽然此代码打印“得到它”:
Future(throw new RuntimeException("")).recover { case ex => println("Got it") }
recover
和recoverWith
方法可以帮助您处理包裹的例外情况(如果有的话)。