在 Slick 3.x 中捕获异常
Catching an exception in Slick 3.x
我试图在 Slick 3.x 中捕获 SQL 错误。下面的代码不打印任何东西,但如果在调试下进行跟踪,它工作正常(打印失败)。这段代码有什么问题?
object TestSlick extends App {
val db = Database.forConfig("dbconfig")
val sql = "update table_does_not_exist set zzz=1 where ccc=2"
val q = sqlu"#$sql"
db.run(q.asTry).map {result =>
result match {
case Success(r) => println(r)
case Failure(e) => {
println(s"SQL Error, ${e.getMessage}")
println("command:" + sql)
throw e
}
}
}
}
这行得通,需要一个未来,感谢 lxx 的提示
val future = db.run(q.asTry).map {result =>
result match {
case Success(r) => println(r)
case Failure(e) => {
println(s"SQL Error, ${e.getMessage}")
println("command:" + sql)
throw e
}
}
}
Await.result(future, Duration.Inf)
我试图在 Slick 3.x 中捕获 SQL 错误。下面的代码不打印任何东西,但如果在调试下进行跟踪,它工作正常(打印失败)。这段代码有什么问题?
object TestSlick extends App {
val db = Database.forConfig("dbconfig")
val sql = "update table_does_not_exist set zzz=1 where ccc=2"
val q = sqlu"#$sql"
db.run(q.asTry).map {result =>
result match {
case Success(r) => println(r)
case Failure(e) => {
println(s"SQL Error, ${e.getMessage}")
println("command:" + sql)
throw e
}
}
}
}
这行得通,需要一个未来,感谢 lxx 的提示
val future = db.run(q.asTry).map {result =>
result match {
case Success(r) => println(r)
case Failure(e) => {
println(s"SQL Error, ${e.getMessage}")
println("command:" + sql)
throw e
}
}
}
Await.result(future, Duration.Inf)