たとえば、このコードサンプルのように、無名関数を引数として渡すと:
val someMap = someData.map(line => (line.split("\\|")(0), // key
line.split("\\|")(1) + "|" + // value as string concat
line.split("\\|")(4) + "|" +
line.split("\\|")(9)))
たとえば、次のような ArrayIndexOutOfBoundsException をキャッチできます。
try {
val someMap = someData.map(line => (line.split("\\|")(0), // key
line.split("\\|")(1) + "|" + // value as string concat
line.split("\\|")(4) + "|" +
line.split("\\|")(9)))
} catch {
case e1: ArrayIndexOutOfBoundsException => println("exception in line " )
}
これの問題は、内部関数のスコープにアクセスできないことです。line
この場合、例外の原因となった (無名関数から) を出力したいと思います。
これどうやってするの?無名関数内で例外をキャッチする方法はありますか? デバッグ目的で匿名関数のスコープに外部からアクセスする方法はありますか?
編集: Scala 2.9.3を使用しています