在上一篇文章中啊,我写了一种使用形参的方式来获取出现的异常。但是那种方式如果对于业务较多的模块来说,就需要每个实现上都需要写一下,这样就会造成耦合度很高,就不符合我们现在的要求,毕竟需要满足高内聚低耦合嘛。这篇文章就是使用全局异常处理的方式来实现捕获异常。
//这是一个全局异常处理类,当然我们也可以自定义异常类来实现,那样更简单。
@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);
}
}
然后就会发现这样是不是更简单了呢?
然后测试一下