当前位置: 首页 > 知识库问答 >
问题:

剩余endpoint异常处理

轩辕远
2023-03-14

下面是我的Restendpoint。我使用Long作为userId的数据类型,通过如下所示的邮递员调用endpoint时工作正常,我能够显式处理异常。

本地主机:8080/订单服务/保存订单/1

但是当我用字符串类型参数这样调用时,

本地主机:8080/订单服务/保存订单/abc

Spring引导隐式处理异常并给出400个错误请求。

我想要的是当参数的变量类型不等于long时抛出一条自定义错误消息,如“请发送正确的用户ID”。

@PostMapping(path = "/save-order/{userId}")
    @ResponseBody
    public ResponseEntity<ExceptionResponse> addOrder(@Valid @RequestBody 
         OrderDTO orderDto, @Valid @PathVariable(name = "userId") Long userId) throws BatchException, UserExceptions, BatchIdException, InvalidDateFormatException, DeliveryIdException,BatchMerchantException {
        return ResponseEntity.ok(new ExceptionResponse("Order Saved", 201, orderServiceImpl.saveOrder(orderDto, userId)));
    }

共有1个答案

松霖
2023-03-14

您可以实现自己的自定义验证器,请参见此处:https://www.baeldung.com/spring-mvc-custom-validator

如果输入符合,则返回true;如果不符合,则返回false。如果用户输入错误,您还可以在此处定义要向用户显示的消息。

 类似资料:
  • 我正在使用Spring。我的应用程序中有几个终结点。基本上,每个endpoint返回一个不同的对象。该应用程序由多个层组成。无论在哪里发生错误,对我们来说,将错误传播到endpoint的调用方都很重要。我们的方法 就是抛出一个异常,错误发生,它应该被捕获在endpoint中,endpoint应该根据异常中的信息改变响应的状态码。我们赶上异常,因为我们不想将肥皂错误抛给调用方 我们已经到了架构中的一

  • 问题内容: 给定月份剩余的天数如何找到当月剩余的天数?例如,如果当前月份为11月,而今天为16/11/2016,则月份中的天数``经过的天数=?我想动态地进行操作在我的示例中30′16 = 14 问题答案: 只需使用Datepart函数:

  • 当我在一个大约有一千万个顶点和一亿条边的图上运行时,代码工作得很好。然而,当我在一个有数以亿计的图和数十亿条边的图上运行它时,在集群上运行了几个小时后,它显示 有人能帮我吗?我刚开始使用spark几天。谢谢你帮忙。

  • 问题内容: 我一直在搜索有关此主题的信息,但仍然听不懂,如果有人可以详细说明,我将非常感激。 我的任务是将两个变量除以整数除以余数。问题是,我不知道余数是什么,现在我做了类似的事情,这是通过互联网搜索得到的: 如果我例如设置(a = 43)和(b = 67) 然后我会得到这个结果: 现在,由于我不知道其余的是什么(这只是来自互联网的建议),所以我不知道这是否是正确的答案。 谢谢你的帮助, 亲切的问

  • 问题内容: 我有这个标题栏。 我需要searchBar来填补div中剩余的空白。我该怎么做? 这是我的CSS 问题答案: 您可以使用CSS表格单元格实现此布局。 稍微修改您的HTML,如下所示: 只需删除两个元素周围的wrapper 元素即可。 应用以下CSS: 适用于并给它100%的宽度。 对于,,,适用。 对于,将宽度设置为90%,这将迫使所有其他元素计算出缩小以适合的宽度,搜索栏将展开以填充

  • 我已经实现了下面的代码来计算剩余的天数。我已经使用SimpleDateFormat将字符串转换为日期。如果输入10/02/1993(今天的日期)作为日期,则输出显示还剩0天。但如果我选择11/02/1993,它显示的输出与0天相同。但如果我改变月份,即1993年2月22日7月2日,它显示的是剩下160天,而不是原来的162天,这是原来的结果。我在这里做错了什么?非常感谢任何帮助。 更新:我已经更新