接上文validation参数校验的另外一种捕获异常的方法

本文介绍了如何通过全局异常处理类降低模块间的耦合度,实现高内聚低耦合。使用@ControllerAdvice注解创建全局异常处理器,统一处理所有异常,避免在每个Controller中重复写异常捕获代码。示例代码展示了如何处理异常并返回统一的ResultVo。这种方式简化了控制器中的异常处理,提高了代码的可维护性。
摘要由CSDN通过智能技术生成

在上一篇文章中啊,我写了一种使用形参的方式来获取出现的异常。但是那种方式如果对于业务较多的模块来说,就需要每个实现上都需要写一下,这样就会造成耦合度很高,就不符合我们现在的要求,毕竟需要满足高内聚低耦合嘛。这篇文章就是使用全局异常处理的方式来实现捕获异常。

//这是一个全局异常处理类,当然我们也可以自定义异常类来实现,那样更简单。
@ControllerAdvice
public class GlobalAdvice {
	//需要处理的异常类型
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ResultVo<User> doException(Exception e){
        return new ResultVo<>("500",e.getMessage(),new User());
    }
}

当然了,这里也不完全可以这样实现,在validation中有许多异常类,我们可以细分一下就是细分为每一个异常,我这里想偷懒就直接使用Exception了。
其次就是在controller中写法

@Controller
public class TestDemo {
    @RequestMapping("/test")
    public ResultVo<User> demos(@RequestBody @Valid User user){
        return new ResultVo<>("200","ok",user);
    }
}

然后就会发现这样是不是更简单了呢?
然后测试一下
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值