gpt4 book ai didi

java - Play Framework 2.2 (java) WS 恢复 block 不捕获 HTTP 异常

转载 作者:行者123 更新时间:2023-11-30 11:23:45 25 4
gpt4 key购买 nike

(看似)调用已知良好 Web 服务的简单静态方法。

如果未找到匹配记录,服务将返回 HTTP 500/内部服务器错误,但调用的恢复 block 永远不会执行。

我是错过了显而易见的事情还是做了一些明显愚蠢的事情?

public static Promise<Property> ByPhone(String phone) {
return WS.url("http://localhost:9000/data/property/" + phone)
.get ()
.map (
new Function<WS.Response, Property>() {
public Property apply (WS.Response response) {
System.out.println("got here: " + response.getStatusText());
Property property = null;
try {
property = _mapper.readValue(response.getBody(), Property.class);
} catch (Throwable t) {
t.printStackTrace();
}
return property;
}
}
).recover (
new Function<Throwable, Property>() {
public Property apply (Throwable t) {
System.out.println("never get here");
t.printStackTrace();
return null;
}
}
);
}

最佳答案

recover 有助于从未捕获的异常中恢复。在这种情况下,HTTP 500 响应不会导致未捕获的 Throwable

据推测,500 意味着后面的 block 将抛出错误

property = _mapper.readValue(response.getBody(), Property.class);

但是,您已经将其包装在 try catch block 中。

关于java - Play Framework 2.2 (java) WS 恢复 block 不捕获 HTTP 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21011199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com