當分配具有模式匹配的值時,捕捉MatchError
的最佳方式是什麼(最簡潔,最清晰,最習慣)?在val初始化時使用Scala中的模式匹配捕獲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'。 – 2012-01-18 10:48:03
預期的行爲是什麼? – missingfaktor 2012-01-18 13:54:54
如果模式匹配分配失敗,是不是'MatchError'就是你想要拋出的東西?否則,我會親自使用其他控制結構以不同的方式處理問題。 – 2012-01-18 17:44:29