【发布时间】:2021-04-24 07:32:54
【问题描述】:
我试图理解为什么有人会在 Scala 中使用 Future.successful(Failure(ServiceException("error"))) 而不是 Future.failed(ex) 的区别。
Future.successful(
Failure(
ServiceException(ErrorTypes.Validation, "Value should not be more than 30")
)
)
【问题讨论】:
-
和以前一样,如果你想要一个明确的错误通道,有人必须从中恢复/处理,这是有道理的。;请注意,这将返回 Try 的 Fututre。而
Future.failed用给定的异常创建了一个失败的未来,所以它是隐藏的,直到有人调用任何恢复方法。