【发布时间】:2020-07-19 13:20:09
【问题描述】:
我正在尝试计算记录数,如果我得到它们,则返回记录,否则只记录错误。
下面是sn-p:
val records: Any = Try(count()) match {
case Success(records) => records
case Failure(exception) => logger.error(s"Exception occurred")
}
count 方法的数据类型是 Int,但是因为包装在 Try 中,所以获取 type 为 any。 我该如何解决这个问题?
【问题讨论】:
-
如果出现错误,
records的值应该是多少? -
不只是日志错误
-
这就是代码已经在做的事情。错误情况不返回任何内容(在 Scala 术语中为
Unit),因此表达式是Int或Unit,唯一匹配这两者的类型是Any。如果你希望它是Int,你必须在错误情况和成功情况下返回Int。