【发布时间】:2012-01-18 10:40:45
【问题描述】:
在使用模式匹配分配值时,捕获MatchError 的最佳方式是什么(最简洁、最清晰、最惯用)?
例子:
val a :: b :: Nil = List(1,2,3) // throws scala.MatchError
到目前为止我发现的最好方法:
val a :: b :: Nil = try {
val a1 :: b1 :: Nil = List(1,2,3)
List(a1, b1)
catch { case e:MatchError => // handle error here }
有没有一种惯用的方法来做到这一点?
【问题讨论】:
-
你也可以使用
scala.util.control.Exception。 -
预期的行为是什么?
-
如果模式匹配分配失败,
MatchError不正是您想要抛出的东西吗?否则我会亲自使用其他控制结构以不同方式处理问题。
标签: scala