xxxxxxxxxx
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
def functionThatThrowsErrorInFuture(inputText: String) = {
Future{
Thread.sleep(1000) // do nothing for 1 second
throw new Exception("BOOM!")
}
}
functionThatThrowsErrorInFuture("foo")}.map{
successfulResult => println(s"Success! ${successfulResult}")
}.recover{
case e:Exception => println(s"Error! ${e}")
}
// >>> res = "Error! java.lang.Exception: BOOM!"