scala - 在 Scala 2.10 或更高版本中,如何提供 "empty"捕获 block

标签 scala try-catch

我还没有找到一种方法来提供一个空(无操作)的方式来完成以下 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/

相关文章:

java - 使用try/catch时如何避免无限循环?

Scala 占位符语法

error-handling - 错误处理-简单示例R

r - 多次尝试一个表达式,直到它在 R 中成功

windows - Windows 上的 Scala 服务

c# - Try/Catch/Finally 使用加密资源

php - 如何捕捉 fatal error : Maximum execution time of 30 seconds exceeded in PHP

scala - 在值类上使用私有(private)构造函数是否会抵消值类的好处?

scala - 展平 map 的选项 map

postgresql - Jooq postgres 使用 play 2.5 scala 插入错误