scala,slick:在哪里可以找到给定方法引发的异常?

时间:2014-04-19 10:23:44

标签: scala slick scaladoc

我想知道在哪里可以找到这样的代码引发的异常:

def readFromDB: String = {
    db_sqlite_xml.withSession {
      implicit db: Session =>
        xmlQuery.first.text

    }
  }

我在光滑的scaladoc(http://slick.typesafe.com/doc/2.0.1/api/#package)中找不到它;我在javadoc的tableQuery类中搜索了“first”方法,但没有任何成功。

感谢。

奥利弗

ps:这是我的答案,它正在发挥作用:

def readFromDB: String = {
    db_sqlite_xml.withSession {
      implicit db: Session =>
        xmlQuery.firstOption.map(u=>u.text).getOrElse("")
    }
  }
}

感谢答案,它帮助了我。

1 个答案:

答案 0 :(得分:1)

该方法属于来自scaladoc

UnitInvoker特征
final def first()(implicit session: SessionDef): R

Execute the statement and return the first row of the result set. 
If the result set is empty, a NoSuchElementException is thrown.

如果我可以给你一个建议,而不是尝试捕捉异常,你应该使用firstOption

final def firstOption()(implicit session: SessionDef): Option[R]

Execute the statement and return the first row of the result set wrapped in Some, 
or None if the result set is empty.

通过这种方式,您可以对查询结果进行参数匹配,如下所示:

def readFromDB: String = {
  db_sqlite_xml.withSession {
    implicit db: Session =>
      xmlQuery.firstOption match {
        case Some(value) => value.text
        case _ => // handle no result
      }
  }
}