Scala消费失败的未来
示例
有时,Future中的计算会创建异常,这将导致Future失败。在“创建未来”示例中,如果调用代码传递55并传递0给divide方法怎么办?ArithmeticException当然,在尝试除以零后会抛出一个“a”。消费代码将如何处理?实际上,有几种处理失败的方法。
使用recover和模式匹配处理异常。
object Calculator {
def calculateAndReport(a: Int, b: Int) = {
val eventualQuotient = FutureDivider divide(a, b)
eventualQuotient recover {
case ex: ArithmeticException => println(s"It failed with: ${ex.getMessage}")
}
}
}用failed投影处理异常,其中异常成为Future的值:
object Calculator {
def calculateAndReport(a: Int, b: Int) = {
val eventualQuotient = FutureDivider divide(a, b)
//注意使用点运算符来获取失败的投影并将其映射。
eventualQuotient.failed.map {
ex => println(s"It failed with: ${ex.getMessage}")
}
}
}
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短