对.delay或.map中引发的异常的预期效果

时间:2019-02-13 18:50:10

标签: scala scala-cats cats-effect

在PR审查期间,我被要求将Sync[F].delay替换为Sync[F].catchNonFatal,因为可能会抛出异常

这确实有效:

scala> Sync[IO].delay(throw new Exception).recover{ case t: Throwable => 42 }.unsafeRunSync
res10: Int = 42

不确定该行为是否特定于IO,我也能够找到corresponding law saying it's actually expected,但是在cats-effect主文档中找不到关于自动处理异常的内容API。

有人知道猫的作用原理和预期的行为吗?在.delay.map.flatMap中抛出异常?

0 个答案:

没有答案