複数回、私は失敗し、将来を回復するには、次のパターンを使用します。PlayのステータスをScalaにカプセル化する方法は?私のコード全体
myFuture.recover {
case t =>
Logger.error(s"foo bar foo, exception: ${t.getMessage}.")
InternalServerError(views.html.error(request, Messages("error.foo")))
}
私は今、コードの重複を除去するために、この動作をカプセル化する方法を探しています。私はクラスでラップしようとしましたが、不思議なことに、InternalServerError
のapply
メソッドを解決できません。
class MyError(t: Throwable, logMsg: String, message: String) {
def apply(t: Throwable, logMsg: String, message: String) = {
Logger.error(logMsg)
InternalServerError(views.html.error(request, message))
}
}
どうすればこの問題を解決できますか?また、request
パラメータについてはどうすればよいですか?
ありがとうございます!私はその解決策が本当に好きです。しかし、そのコードは私の箱でコンパイルされません。私は次のエラーを受け取ります: '識別子は期待されますが、暗黙的に 'が見つかりました。 –
@ JohnDoeあなたは 'パッケージオブジェクト'を作成しなければなりません – pamu
これはすてきな解決策ですが、あなたのコードを大きく複雑にする可能性があるので、慎重にimplicitsを使うことをお勧めします。 –