【发布时间】:2014-08-31 02:12:01
【问题描述】:
以下 REPL sn-ps 假定:
import scala.util.{Try, Success, Failure}
为什么这两条语句编译不通过?我得到“无法将构造函数实例化为预期类型”:
Failure(new Exception("a")) match {
case Success(i) => "a"; case Failure(e) => "b"; case _ => "c"; }
Success(123) match {
case Success(i) => "a"; case Failure(e) => "b"; case _ => "c"; }
我可以通过get 或toOption 从Try 中获得成功值。是否有相应的方法来获取失败的Throwable 值或Option[Throwable]?
编辑:从失败/成功转换到尝试工作
Failure(new Exception("a")).asInstanceOf[Try[Int]] match {
case Success(i) => "a"; case Failure(e) => "b"; case _ => "c"; }
Success(123).asInstanceOf[Try[Int]] match {
case Success(i) => "a"; case Failure(e) => "b"; case _ => "c"; }
【问题讨论】: