Тип возврата из Try in scala - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь подсчитать количество записей, и если я их получу, верните записи, иначе просто запишите ошибку.

Ниже приведен фрагмент:


    val records: Any = Try(count()) match {
                case Success(records) => records
                case Failure(exception) => logger.error(s"Exception occurred")
              }

Тип данных Метод count - это Int, но из-за того, что он упакован в Try, получим тип как любой. Как я могу решить проблему?

1 Ответ

2 голосов
/ 07 апреля 2020

Что такое тип возврата count Возвращает метод / поле. Если вы хотите просто проигнорировать исключение и распечатать его, а затем продолжить, вы должны были сделать что-то вроде этого:


  val records: List[Int] = Try(count()) match {
    case Success(records) => records
    case Failure(exception) =>
      log.error("Exception occurred", exception)
      List.empty
  }

  def count(): List[Int] = List(1, 2 ,3)
...