定义@Valid全局异常,返回自定义错误信息

@Valid注解用于数据校验,当验证失败时默认返回详细错误信息。为提供统一的错误返回格式,可以创建全局异常处理器,定制化的展示错误信息。通过这种方式,能够更好地控制错误反馈,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Valid的注解要求对变量进行验证,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。但@Valid默认返回信息非常长,我们可以定义全局异常子定义我们需要返回的信息和格式。
@valid使用方法:
https://blog.csdn.net/weixin_38118016/article/details/80977207

/**
 * @Author: thunder
 * @Date: 2020/8/7 14:56
 * @ControllerAdvice 实现全局异常处理
 */
@ControllerAdvice
public class MyGlobalExceptionHandler {
    /**
     * 定义@Valid注解全局异常处理机制
     * @param e
     * @return
     */
    @ExceptionHandler(BindException.class)
    @ResponseBody
    public JsonResult validationBodyException(BindException e){
        e.printStackTrace();
        //打印校验住的所有的错误信息
        StringBuilder sb = new StringBuilder("参数错误:[");
        List<ObjectError> list = ((BindException) e).getAllErrors();
        for (ObjectError item : list) {
            sb.append(item.getDefaultMessage()).append(',');
        }
        sb.deleteCharAt(sb.length()-1);
        sb.append(']');
        String msg  =  sb.toString();
        return new JsonResult(500,sb.toString
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值