如果我将匿名函数作为参数传递,例如在此代码示例中:
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