私はプレイスカラアプリケーションを開発していますが、ロケールが見つからないと例外がスローされます、私の問題はメッセージが郵便配達人に表示されていません例外が発生した後、ここに私のコード新しい例外をスローするとポストマンのレスポンスに何も表示されない
class LocaleFilter @Inject()(implicit val mat: Materializer, ec: ExecutionContext) extends Filter {
def apply(nextFilter: RequestHeader => Future[Result])
(requestHeader: RequestHeader): Future[Result] = {
val startTime = System.currentTimeMillis
val localeIndex = requestHeader.path.indexOf("v1") + 3
val localeRequest = requestHeader.path.replace("//", "/").split("/")(3);
if (!isExistingLocale(localeRequest)) {
throw new CustomException("Locale not found")
}
nextFilter(requestHeader).map { result =>
val endTime = System.currentTimeMillis
val requestTime = endTime - startTime
Logger.info(s"${requestHeader.method} ${requestHeader.uri} took ${requestTime}ms and returned ${result.header.status}")
result.withHeaders("Request-Time" -> requestTime.toString)
}
}
def isExistingLocale(locale: String): Boolean = {
val properties = ConnectionLoader.getConnectionProperties(locale);
return null != properties;
}
case class CustomException(private val message: String = "",
private val cause: Throwable = None.orNull)
extends Exception(message, cause)
}
ポストマン結果はロケールたが見逃しているが見つからないれるべき郵便配達の結果であり、コードは500である理由私は考えているはず細かいです。
実際にあなたが(副作用である)例外を必要としません。あなたは'return InternalServerError(«ロケールが見つかりません»)で '新しいCustomException(«ロケールが見つかりません»)'を置き換えることができます – Dnomyar
@Donmyarによって何ですか? –
私はコメント – Dnomyar