我还没有找到一种方法来提供一个空(无操作)的方式来完成以下 Scala 代码中的 catch block :
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} )
我尝试用“()
”、“Unit
”、“None
”替换“NoOp
” >”、“se.getMessage()
”等。我在 Eclipse 中继续收到一条错误消息,指出各种形式的“类型不匹配;找到:单位,需要:AutoCloseable => ?”。
我也尝试将最后一行更改为以下内容,但仍然收到与上述相同的警告:
autoCloseables.map(try {_.close} catch {case _: Throwable => } )
对此的任何具体指导将不胜感激。而且,我知道 ARM 库。现在,请假设我无法使用它,并且需要从这个特定的问题形成框架中解决。谢谢。
最佳答案
import scala.util.Try
autoCloseables.map(a => Try(a.close))
关于scala - 在 Scala 2.10 或更高版本中,如何提供 "empty"捕获 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19008802/