首页 > 解决方案 > 如何在 Spring Boot 中捕获错误请求

问题描述

我正在创建一个简单的 REST 服务,我可以在其中对用户进行 crud 操作。

为了创建用户,我编写了以下函数:

    public @ResponseBody ResponseEntity<User> createUser(@RequestParam String name, @RequestParam String email, @RequestParam String password, @RequestParam String platform, @RequestParam String platformID, @RequestParam String wishlist) {
        if(name != "" && email != "" && password != "" && platform != "" && platformID != "" && wishlist != "") {
            User user = new User(name, email, password, platform, platformID, wishlist);
            User result = userRepository.save(user);
            return new ResponseEntity<User>(result, HttpStatus.CREATED);
        }
        return new ResponseEntity("The user can not be added because it is not complete", HttpStatus.CONFLICT);
    }

如您所见,我在请求参数中提供了用户信息。我想拥有它,以便如果请求的 URL 中缺少参数,则执行函数的底线。但是,当缺少参数时,我会自动返回一个 Bad Request http 错误。有人知道如何捕捉这样的错误或更改其中的文本吗?

标签: javaspringresthttpintellij-idea

解决方案


默认情况下@RequestParam是必需的(属性required = true)。你可以做这样的事情@RequestParam(required = false)

更新 1:我还注意到您使用!=比较字符串。你必须使用类似的东西user != null && !user.eqauls("")


推荐阅读