在前面的博客中,Spring Boot整合jpa,Shiro进行权限管理 异常都是直接返回到页面上,这样做既不安全,也不友好,所以在返回给页面之前,我们需要对异常信息进行统一的处理,该部分的处理思路和spring mvc的处理思路是一致的。
下面,我们来对前面的示例进行改造,从而能够支持统一的异常处理。
1、定义全局异常处理类
@ControllerAdvice
public class GlobalExceptionHandler {// 此处仅用作测试
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
if (e instanceof UnauthorizedException) {// 判断异常类型
mav.addObject("exception", "无权访问!");// 根据异常类型,返回具体的展示信息
} else {
mav.addObject("exception", "系统错误,请联系管理员@chhliu!");