@scala.throws[scala.Exception]
def processQuery(searchQuery : scala.Predef.String) : scala.concurrent.Future[io.circe.Json] = { /* compiled code */ }
을 차단 시도 블록 외부는 try
입니다. 또는 예외를 처리하는 다른 방법이 있습니까? processQuery
기능을 포함하는 파일을 편집 할 수 없습니다. 읽기 전용입니다. 길에서 선언 된 경우핸들 예외는 외부 내가 후에 성공의 경우는 <code>try</code> 블록 내부에 initailized 할 수 있으며, 처리 할 수 있도록 라인 3에서 <code>searchResult</code> 변수를 선언하려면 어떻게
def index = Action.async{ implicit request =>
val query = request.body.asText.get
var searchResult : scala.concurrent.Future[io.circe.Json] = Future[io.circe.Json] //line 3
var jsonVal = ""
try {
searchResult = search.processQuery(query)
} catch {
case e :Throwable => jsonVal = e.getMessage
}
searchResult onSuccess ({
case result => jsonVal = result.toString()
})
searchResult.map{ result =>
Ok(Json.parse(jsonVal))
}
}
이은 (는) recover
방법 도움말을 사용하여 컴파일 오류
사용 여부를 잘 모르는 경우 종속성을 해결하는 데 어려움이 있습니다. import io.circe.Json을 추가하면 Json.obj에서 synrax 오류가 발생합니다 (기호 Json을 해결할 수 없음). 반면 가져 오기를 주석 처리하고 가져 오기 play.api.libs.Json을 사용하면 이전 오류가 아닙니다. 거기에 "결과"-> Json (found : (String, Json) eequired :(String, Json.JsValueWrapper))에서 오류가 발생했습니다. –
Json.obj는 Json 객체를 만드는 방법입니다. 나는 iocirce 라이브러리를 모른다. 그래서 어떻게해야 하는지를 말할 수는 없지만, 방법이있을 것이다. – wwkudu