Scala.util.Experimente tratamento de erros do Scala 2.10.

Scala 2.10 introduziu um novo método para fazer o tratamento de exceções – o scala.util.Experimente .

A classe funciona de forma muito semelhante à classe Qualquer [A, B]. Mas com uma semântica melhor.

Você pode encapsular qualquer código que possa lançar exceções dentro da função Try.apply ().

val result = Try(Integer.parseInt(...))

Agora, o resultado será uma das duas subclasses de Try – Success or Failure.

Se Integer.parseInt não lançar nenhuma exceção, será um sucesso, caso contrário, será uma falha.

Existem algumas maneiras de lidar com o resultado do Try.

// Traditional Java way to check result
val myInt
= if (result.isSuccess) { result.get } else { 0 }

// Or using getOrElse()
val myInt
= result.getOrElse(0)

// Or handle exception ourself
val myInt
: Try[Int] = result.recover {
case e: Exception => 0
}
println
(myInt.get)

// Since scala.util.Try is a monad, we could use for-comprehension
for (myInt <- result) {
println
(myInt) // Only execute if result is a Success
}

// And of course map() / foreach() will works fine.
result
.
result
.map(_ + 1).foreach(println)