使用尝试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) => // 处理错误... }