我无法找到一种方法来提供一个空(无操作)方法来完成以下Scala代码中的catch块:
var autoCloseables: List[AutoCloseable] = List()
... //some code that fills the list with various java.sql.* instances; Connection, Statement, ResultSet
autoCloseables.map(try {_.close} catch {case se: SQLException => NoOp} )
我尝试将“NoOp
”替换为“()
”,“Unit
”,“None
”,“se.getMessage()
”等。我继续在Eclipse中收到错误,说明各种形式的“类型不匹配;发现:单位,必需:AutoCloseable =>?”。
我也尝试将最后一行更改为以下内容,但仍然收到与上述相同的警告:
autoCloseables.map(try {_.close} catch {case _: Throwable => } )
对此的任何具体指导将不胜感激。而且,我了解ARM库。现在,请假设我无法使用它,并且需要从这个特定问题形成框架中解决的问题。谢谢。
答案 0 :(得分:8)
import scala.util.Try
autoCloseables.map(a => Try(a.close))