Дорого ли бросать исключения в Scala?
Более конкретно, при отображении исключений для будущего вызова, таких как:
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
val fut: Future[Int] = Future(1)
Есть ли большая разница между x
и y
с точки зрения производительности?
case class MappedException(message: String) extends Exception(message)
val x = fut.recover {
case e => throw MappedException(e.getMessage)
}
val y = fut.recoverWith {
case e => Future.failed(MappedException(e.getMessage))
}