MethodArgumentNotValidException提取关键报错信息返回

问题:报错框架问题

目的:只需要关键提示词;

e.message:Validation failed for argument [0] in com.victorlamp.hviot.common.pojo.CommonResult<com.victorlamp.hviot.service.management.entity.thing.Thing> com.victorlamp.hviot.service.management.controller.thing.ThingController.createThing(com.victorlamp.hviot.service.management.controller.thing.vo.ThingCreateReqVO): [Field error in object 'thingCreateReqVO' on field 'name': rejected value [M]; codes [Size.thingCreateReqVO.name,Size.name,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [thingCreateReqVO.name,name]; arguments []; default message [name],32,2]; default message [设备名称长度为2-32个字符]]

修改代码如下:

 @ExceptionHandler(MethodArgumentNotValidException.class)public ResponseDTO exceptionHandler(MethodArgumentNotValidException e) {BindingResult bindingResult = e.getBindingResult();List<FieldError> fieldErrors = bindingResult.getFieldErrors();String errorMessage = fieldErrors.stream().findFirst().map(FieldError::getDefaultMessage).orElse("Invalid request");ResponseDTO result = ResponseDTO.fail(ExceptionTemplate.INVALID_REQUEST_COMMON, errorMessage);log.error("invalid request error", e);return result;}

MethodArgumentNotValidException 中的错误信息包含了字段验证错误的详细信息。具体地说,这些详细信息被包含在 BindingResult 对象中,而 BindingResult 对象包含一个 FieldError 对象的列表。每个 FieldError 对象表示一个字段验证错误,包含了验证失败的详细信息。

来看一下这些对象的结构:

  1. MethodArgumentNotValidException

    • 该异常包含一个 BindingResult 对象,可以通过 getBindingResult() 方法获取。
  2. BindingResult

    • 这是一个接口,通常的实现类是 BeanPropertyBindingResult
    • 通过 getFieldErrors() 方法可以获取一个 FieldError 对象的列表。
  3. FieldError

    • 该对象包含了验证失败的详细信息,包括字段名、被拒绝的值、错误代码和默认错误消息等。
    • 你可以通过 getField(), getRejectedValue(), getCodes(), 和 getDefaultMessage() 等方法来获取详细信息。

具体到你的例子中的异常信息,它的类型是 MethodArgumentNotValidException,其中包含了一个 BindingResult 对象,而 BindingResult 对象包含了一系列的 FieldError 对象,每个 FieldError 对象表示一个验证失败的字段及其详细信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/23446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用人工智能-智慧合同管理系统规避企业合同管理风险

随着企业业务的不断扩展&#xff0c;合同管理在企业运营中扮演着越来越重要的角色。然而&#xff0c;传统的合同管理方法往往存在效率低下、风险控制不足等问题。为了解决这些问题&#xff0c;道本科技智慧合同管理系统不仅通过合同全生命周期的管理对企业合同管理从宏观上做了…

开发uniapp 小程序时遇到的问题

1、【微信开发者工具报错】routeDone with a webviewId XXX that is not the current page 解决方案: 在app.json 中添加 “lazyCodeLoading”: “requiredComponents” uniapp的话加到manifest.json下的mp-weixin 外部链接文章&#xff1a;解决方案文章1 解决方案文章2 &qu…

flash掉位问题及其解决办法

掉位现象是使用Flash存储器时&#xff0c;由于某些原因导致存储的数据发生错误或丢失的现象。一般可能由于硬件故障、电源问题、软件错误或使用不当等原因引起。 解决Flash掉位问题需要根据具体情况采取不同的方法。常见的解决办法及预防措施包括&#xff1a; 1.检查硬件故障…

SEACells:元细胞分析

元细胞是从单细胞测序数据中衍生的细胞分组&#xff0c;代表高度精细的不同细胞状态。在这里&#xff0c;作者介绍了单细胞细胞状态聚集 (SEACells)&#xff0c;这是一种用于识别元细胞的算法&#xff0c;它克服了单细胞数据的稀疏性&#xff0c;同时保留了传统细胞聚类所掩盖的…

【C++进阶】深入STL之vector:深入研究迭代器失效及拷贝问题

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;初步了解vector &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀STL之vector &#x1f4d2;1. 迭…

Linux C语言:数组的定义和初始化

一、数组 1、定义 在程序设计中&#xff0c;为了处理方便&#xff0c;把具有相同类型的若干变量按有序的形式组织起来&#xff0c;具有一定顺序关系的若干个变量的集合就是数组 。 2、特点 组成数组的各个变量称为数组的元素数组中各元素的数据类型要求相同元素在内存中是连…

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式&#xff0c;有很多的文件内容都可以通过这种格式来展示内容&#xff0c;比如一些通知文件、设计图、个人信息等等&#xff0c;文件的内容越多就会越大&#xff0c;在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率&#xff0c;但是其标注格式如何能转换成YOLO标注格式&#xff0c;具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

巧用docker+jmeter快速实现分布式百万级并发

分享背景 碰到的问题&#xff1a; 一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试&#xff5e; 解决办法&#xff1a; 1、修改jmeter配置文件里的内存堆 2、引入jmeter分布式压测 带来的问题&#xff1a; 如果我们要做分布式负载测试–我们需要1个…

企业数据挖掘建模平台极简建模流程

泰迪智能科技企业数据挖掘建模平台是企业自主研发&#xff0c;面向企业级用户的快速数据处理构建模型工具。平台底层算法基于R语言、Python、Spark等引擎&#xff0c;使用JAVA语言开发&#xff0c;采用 B/S 结构&#xff0c;用户无需下载客户端&#xff0c;可直接通过浏览器进…

GAT1399协议分析(7)--pycharm anaconde3 配置pyside2

一、安装pyside2 pip install pyside2 二、配置qtdesigner File->Settings->Tools->External tools 点击添加,添加QtDesigner, 注意designer.exe路径,需要在虚拟环境下。 三、添加pySide2 File->Settings->Tools->External tools 点击添加,添加PyS…

高效内容分发:海外短剧推广平台的流媒体传输技术挑战与解决

随着海外短剧市场的蓬勃发展&#xff0c;如何高效地将短剧内容分发给全球观众成为了推广平台必须面对的一大挑战。在这一过程中&#xff0c;流媒体传输技术起着至关重要的作用。然而&#xff0c;由于网络环境的复杂性和多样性&#xff0c;流媒体传输面临着带宽限制、延迟等诸多…

前端--导出

这边记录我们公司后端做的导出接口和前端是如何对接的 这边的技术栈是&#xff1a; 1&#xff1a; react 2&#xff1a; fetch 第一步&#xff1a;简单封装--导出界面 import { DrawerForm } from ant-design/pro-components; import { CloseOutlined } f…

iOS 之homebrew ruby cocoapods 安装

cocoapods安装需要ruby&#xff0c;更新ruby需要rvm&#xff0c;下载rvm需要gpg&#xff0c;下载gpg需要homebrew&#xff0c;所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods Rvm 官网&#xff1a; RVM: Ruby Version Manager - RVM Ruby Version Manager - Docum…

抖音快手短视频直播课程:从0基础到精通,定位、运营、内容、拍摄、剪辑、养号、算法、小店、直播、话术、变现等

随着社交媒体的飞速发展&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;已经成为众多个人和企业展示自我、推广品牌的重要平台。但如何在众多内容中脱颖而出&#xff0c;吸引更多粉丝和关注&#xff0c;成为许多人的困惑。 为此&#xff0c;我们特别推出“抖音运营高手速…

sftp+ssh+nginx部署

SFTP方式登录服务器部署静态资源 使用软件&#xff1a;xftp IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#xff1a;xx SSH方式登录服务器修改nginx配置文件 使用软件&#xff1a;xshell、putty IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#x…

docker_构建镜像成功但启动容器的执行程序总是报文件找不到(lesson)

碰到问题 有一次做了一个镜像&#xff0c;制作成功&#xff0c;但运行容器总是报错&#xff1a;找不到文件。 dockerfile如下&#xff1a; FROM golang:1.18 AS builder WORKDIR /app COPY go.mod main.go ./ RUN go mod download COPY . . RUN go build -o tools_cpu_burner…

操作系统概述

操作系统概述 ## 认识操作系统 不同角度看到的操作系统 : 整体看, 使用者, 操作系统者, 普通开发者 从程序执行看 操作系统是其它所有用户程序运行的基础 #include <stdio.h>int main() {printf(“ Hello world\n”); } 该程序的执行过程 : 操作系统检查字符串的…

Linux 35.5 + JetPack v5.1.3@ ego-planner编译安装

Linux 35.5 JetPack v5.1.3 ego-planner编译安装 1. 源由2. 编译&安装Step 1&#xff1a;依赖库安装Step 2&#xff1a;建立工程Step 3&#xff1a;编译工程Step 4&#xff1a;安装工程 3. 问题汇总3.1 planner/plan_env - OpenCV3.2 uav_simulator/local_sensing - CUDA优…

《Navi日语社》App:日语学习与翻译的智能助手,支持日文OCR识别提取文字,无需打字对着说话就能翻译的日语语音翻译工具!

在全球化的今天&#xff0c;掌握一门外语已经成为许多人的必备技能。尤其是日语&#xff0c;不仅在学术、商务领域有着广泛的应用&#xff0c;也是许多旅行者和动漫爱好者的心头好。《Navi日语社》App&#xff0c;作为一款专为日语学习者和翻译需求者设计的移动应用&#xff0c…