首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可靠地计算出您的db是否在Scala Slick下。

可靠地计算出您的db是否在Scala Slick下。
EN

Stack Overflow用户
提问于 2013-03-22 16:02:37
回答 1查看 518关注 0票数 0

我正在使用来处理Mysql。

我正在用scala.util.Try包装所有的调用

我想根据这个问题有不同的行为。

  • 如果DB关闭,我最终希望我的webapp返回503。
  • 如果一个奇怪的查询进入我的db层,而我的代码中有一个bug,那么我想返回一个500。

在googling搜索之后,您似乎可以得到一系列不同的错误代码异常,我不知道该查找什么。

我用的是com.mysql.jdbc.driver

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-22 17:00:20

Slick/MySQL将抛出MySQLSyntaxErrorException作为错误的语法,在无法到达数据库时抛出CommunicationsException

下面是一个快速示例,它将捕获这两种类型的异常:

代码语言:javascript
复制
try {
    Database.forURL("jdbc:mysql://some-host:3306/db-name", 
                    driver = "com.mysql.jdbc.Driver", 
                    user="", 
                    password="") withSession { session: Session =>
      implicit val s = session
      ...
    }
} catch {
    case e: MySQLSyntaxErrorException =>
        ... handle the syntax error ...
        // You may want to define your own Exception that wraps the MySQL one
        // and adds more context
    case e: CommunicationsException =>
        ... handle the connection error ...
}

然后,在webapp代码中,您将希望捕获自定义异常(请参阅代码中的注释),并相应地返回HTTP代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15574793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档