私は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は実際のメソッドよりも大きく、すべてのメソッドに対してこれを行う必要があります。クラスは一見、trycatchの醜いコレクションになります。見栄えが悪く、気が散るようなコード全体のキャッチを回避または最小化する方法はありますか?私はScala(およびJava BTW)を初めて使用するので、何かが足りないと思います。
DBオブジェクトにJSONを送信させたくないので、db.get_collectionメソッドでtrycatchを使用することはできません。