优化函数类型参数的错误管理

时间:2018-04-16 10:08:19

标签: java spring rest

我在网络服务上正确管理错误时遇到了一些麻烦。它们工作得很好,但我希望有一个集中的错误管理,可以轻松控制返回的状态/字符串。

为此,我为我的所有web服务创建了一个父类。这是getList的一个例子。 此函数允许检索Object JSONised的列表。它还管理http状态。

public ResponseEntity<String> getList(Function getFunction) {
    String retour = error;
    HttpStatus statusRetour = HttpStatus.INTERNAL_SERVER_ERROR;

    try {
        Object ret = getFunction.apply(null);
        if (ret == null || ((List) ret).size() == 0) {
            statusRetour = HttpStatus.NOT_FOUND;
        } else {
            retour = parser.toJson(((List) ret).stream().map(s -> parser.toJson(s)).collect(Collectors.toList()));
            statusRetour = HttpStatus.OK;
        }
    } catch (Exception e) {
        Logger.error(getFunction.toString(), e);
    }
    return new ResponseEntity<String>(retour, statusRetour);
}

//Usage
return this.getList(this.getUserFactory()::getAllUsers);

这很有效。我的问题是,我不能给它一个函数,它将Exception作为一个带有&#34; ::&#34;的参数。风格,即使我在我的功能中管理它们,这给了我这样的东西......

return this.getList(t -> {
        try {
            return this.getMetierFactory().getAllMetier(t);
        } catch (Exception e) {
            // some error management ?
            return null;
        }
    });

我发现这有点难看:p

你知道吗?我真的很喜欢&#34; ::&#34;句法。因为我希望我的错误管理能够在我的getList函数中实现,所以阅读和管理更多逻辑的方式更清晰。

0 个答案:

没有答案