3

在以下 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 库。现在,请假设我无法使用它,并且需要从这个特定的问题形成框架中解决。谢谢你。

4

1 回答 1

8
import scala.util.Try

autoCloseables.map(a => Try(a.close))
于 2013-09-25T15:21:17.470 回答