我正在使用Scalatra将MongoDB数据导出为JSON格式,我的操作非常简单,例如:
get("/") {
val title = db.get_collection("main", "api", "title")
send_json(title)
}
如果出现问题,我想发送一个HTTP错误和文本,另一方面,它将被转换为对用户有意义的内容。
所以方法变成了:
get("/") {
try {
val title = db.get_collection("main", "api", "title")
send_json(title)
} catch {
case e:java.util.NoSuchElementException => send_error("DB malformed", InternalError)
case e:com.mongodb.MongoException => send_error("Can not connect to MongoDB", InternalError)
case e => send_error("Internal Error", InternalError)
}
}
在每个方法中都加上try catch会让代码变得很丑陋,有没有什么方法可以避免或减少这种情况?我是Scala(和Java)的新手,可能还有些东西不太懂。
我不希望DB对象发送JSON,所以在db.get_collection方法上使用try catch不是一个选项。