Scala try / catch vs将来恢复不同的处理异常

时间:2017-10-31 19:13:09

标签: scala exception error-handling

之间有什么区别
try {
       Future . map { }

} catch {}

Future.map {} recover {}

他们不是一回事吗? try如何捕获处理期货中的异常与恢复方法的处理方式。

1 个答案:

答案 0 :(得分:3)

当您使用Future时,您将结果包装在其中,因此异常也会被包装。

这就是为什么这段代码不能打印任何东西:

try { Future(throw new RuntimeException(""))} catch { case ex => println("Got it") }

虽然此代码打印“得到它”:

Future(throw new RuntimeException("")).recover { case ex => println("Got it") }

recoverrecoverWith方法可以帮助您处理包裹的例外情况(如果有的话)。