Apache有IOUtils.closeQuietly(Closeable)
。在Scala中,我想概括一下:執行一個塊並插入異常,同時記錄它們。這樣的事情:,執行一個塊並忽略但記錄異常
import LogUtils._
object Playground extends App {
implicit val logger_ = LoggerFactory.getLogger(getClass)
silentLog {
println("block")
throw new Exception("an exception")
}
println("end")
}
import org.slf4j.{Logger, LoggerFactory}
import scala.util.control.NonFatal
object LogUtils {
def silentLog[U](f: => U)(implicit log: Logger) {
try f
catch {
case NonFatal(e) => log.error(null, e)
}
}
}
這是否已經在一些常用的庫中實現?
我想不會,因爲通常不是一個好的做法 – cchantep