Ожидаемое поведение в cats-эффект для исключений, генерируемых в `.delay` или` .map` - PullRequest
0 голосов
/ 13 февраля 2019

Во время просмотра PR меня попросили заменить Sync[F].delay на Sync[F].catchNonFatal, потому что может быть выдано исключение .

Это работает:

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

Не будучи уверенным, относится ли это поведение к IO, я также смог найти соответствующий закон , говорящий, что он действительно ожидается , но я не смог найти упоминаний в основной документации по эффектам кошки об автоматическомобработка исключений в API.

Кто-нибудь знает обоснование и ожидаемое поведение, за которым следуют эффекты с эффектом кошки в исключениях, добавленные в .delay или .map или .flatMap?

...