【发布时间】:2014-06-26 15:01:15
【问题描述】:
在 WS API 请求中实现正确的异常处理的正确方法是什么?
一个例子:
F.Promise<List<String>> modulesPromise = WS.url(requestUrl).setAuth(apiUser, apiPassword).get().map(
new F.Function<WSResponse, List<String>>() {
public List<String> apply(WSResponse response) {
List<String> modules = new ArrayList<>();
JsonNode json = response.asJson();
for (JsonNode node : json) {
modules.add(node.get("name").toString().replace("\"", StringUtils.EMPTY));
}
return modules;
}
}
);
modulesPromise.recover(new F.Function<Throwable, List<String>>() {
@Override
public List<String> apply(Throwable throwable) throws Throwable {
Logger.error("error", throwable);
return new ArrayList<>();
}
});
如果内部类在这种情况下发生异常,则会进一步抛出异常。 .onFailure() 方法也存在同样的问题。这不是使用 try catch 块来捕获潜在异常的最佳方法吗? recover 和 onFailure 方法好像没什么用。
【问题讨论】:
标签: java exception-handling error-handling playframework promise