内包表記で潜在的な例外を処理するにはどうすればよいですか? MatchException
この例では、行が適切にフォーマットされていないときに発生するa を処理したいと考えています。行の文字列を含む、より有益な例外をスローしたいと思います。問題は、行の文字列がfor 内包内でしか認識されていないことですが、従来のエラー処理try/catch
はfor 内包外で行われます。
val gold = Resource.using (Source.fromFile(file)) { source =>
(for {
line <- source.getLines
Array(annotation, string, _ @ _*) = line.split("\t")
boolean = if (annotation == "1") true else false
} yield {
string -> boolean
}).toMap
}
ここではScala 2.10Try
が役立つかもしれませんが、私はまだ 2.9.2 を使用しています。