Scala尝试

示例

使用尝试map,getOrElse并且flatMap:

import scala.util.Try

val i = Try("123".toInt)     // 成功(123)
i.map(_ + 1).getOrElse(321)  // 124

val j = Try("abc".toInt)     // 失败(java.lang.NumberFormatException)
j.map(_ + 1).getOrElse(321)  // 321

Try("123".toInt) flatMap { i =>
  Try("234".toInt)
    .map(_ + i)
}                            // 成功(357)

Try与模式匹配一起使用:

Try(parsePerson("John Doe")) match {
    case Success(person) => println(person.surname)
    case Failure(ex) => // 处理错误...
}