Json groovy:如何捕获AsyncHttpBuilder上的异常
我正在尝试对域进行异步调用。如果我使用json响应指定了一个有效的地址,那么下面的代码可以很好地工作,但是当地址无效时,我希望能够捕获任何可能的异常 如何捕获返回的异常 这里是stacktrace的摘录: 消息:无效的JSON字符串 http.AsyncHTTPBuilder-从响应委托引发的异常: groovyx.net.http.HTTPBuilder$RequestConfigDelegate@420db81e 代码如下:Json groovy:如何捕获AsyncHttpBuilder上的异常,json,asynchronous,groovy,httpbuilder,Json,Asynchronous,Groovy,Httpbuilder,我正在尝试对域进行异步调用。如果我使用json响应指定了一个有效的地址,那么下面的代码可以很好地工作,但是当地址无效时,我希望能够捕获任何可能的异常 如何捕获返回的异常 这里是stacktrace的摘录: 消息:无效的JSON字符串 http.AsyncHTTPBuilder-从响应委托引发的异常: groovyx.net.http.HTTPBuilder$RequestConfigDelegate@420db81e 代码如下: def http = new AsyncHTTPBuilder(
def http = new AsyncHTTPBuilder( poolSize : 1,
contentType : ContentType.JSON )
def futureResult
futureResult = http.request( "http://www.notexistingdomainxyzwq.com/",
Method.GET,
ContentType.JSON ) {
response.success = { resp, json ->
log.info("SUCCESS")
}
response.failure = { resp, json ->
log.info("ERROR")
}
}
log.info("Call started");
try {
while (!futureResult.done) {
log.info('waiting...')
log.info("DONE: ${futureResult.done}")
Thread.sleep(1000)
}
} catch(ex) {
log.error("EXCE ${ex}")
}
log.info("Call completed")
如果调用futureResult.get to block并等待结果,这将引发您可以捕获的异常:
try {
def result = futureResult.get()
log.info( "Done: $result" )
} catch(ex) {
log.error("EXCE ${ex}")
}