首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后端应用程序应该如何响应错误或无效输入?

后端应用程序应该如何响应错误或无效输入?
EN

Stack Overflow用户
提问于 2014-01-23 04:46:48
回答 1查看 399关注 0票数 1

我们正在为iOS创建一个应用程序,并选择了在Google app Engine上运行的Java作为后端。我们使用Google Cloud Endpoint为iOS生成客户端库。我们对这其中的大部分都是相对较新的,我们不太确定后端应该如何响应基于用户操作的错误。例如,我们有一个用于创建自定义用户的方法,如果保存成功,该方法应返回user-object。但可能存在未满足的条件,如果是这样的话,应用程序必须获得适当的响应和处理呈现给用户。这就是我们的想法:

代码语言:javascript
复制
@ApiMethod(name = "createUser", httpMethod = HttpMethod.POST)
public User createUser(User user) throws BadRequestException
{
    if(!validateUsername(user.getUsername()))
        throw new BadRequestException("Invalid characters in username");

    //Do stuff and save user
    .........

    return user
}

然后,如果用户名存在,可能会抛出一个从ServiceException派生的自定义异常,等等。这是一个合理的方法吗?我只是觉得每次发生这样的事情都抛出异常有点残酷。它还会出现在日志中,这可能会使您很难区分需要修复的实际应用程序错误。

EN

回答 1

Stack Overflow用户

发布于 2014-01-23 12:19:00

我相信你抛出错误400 (BadRequestException)的方法在这种情况下是很好的。

此外,端点还提供了其他异常,如UnauthorizedException (401)、ForbiddenException(403)等。请查看list

您还可以具有自定义异常,这些异常可以映射到Endpoint支持的其他HTTP代码。因此,使用Custom Exception的方法很好,但请记住,它最终需要映射到其中一个HTTP代码。

当涉及到解析客户端中的响应并根据错误执行一些自定义处理时,它可能会变得棘手,因为您必须设置特定详细信息的所有控件都限于message属性。因此,您需要以一种可以解析并确定要做什么的方式来破解消息格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21293628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档