我们正在Scala开发一些系统,我们有一些疑问.我们正在讨论如何映射未来的异常,我们不知道何时应该使用选项1或选项2.
val created: Future[...] = ???
Run Code Online (Sandbox Code Playgroud)
选项1:
val a = created recover {
case e: database.ADBException =>
logger.error("Failed ...", e)
throw new business.ABusinessException("Failed ...", e)
}
Run Code Online (Sandbox Code Playgroud)
选项2:
val a = created recoverWith {
case e: database.ADBException =>
logger.error("Failed ...", e)
Future.failed(new business.ABusinessException("Failed ...", e))
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释我何时应该选择1还是选项2?什么是差异?
scala ×1