在Scala中循环迭代时处理异常的最佳方法是什么?例如,如果我有一个可以抛出异常的convert()方法,我想捕获该异常,记录它并继续迭代.是否有"scala"方式来做到这一点?
理想情况下,我喜欢......
val points: Seq[Point] = ...
val convertedPoints: Seq[ConvertedPoint] = points.map(
p => {
try { p.convert() }
catch { case ex: Exception => logger.error("Could not convert", ex) }
})
Run Code Online (Sandbox Code Playgroud)
你不能做上面的代码,因为它不是从一个列表到另一个列表的直接映射(你得到Seq [Any]而不是Seq [ConvertedPoint]).任何帮助将不胜感激!
谢谢!