在SpringMVC中, 实现了HandlerExceptionResolver接口的类就自动是全局的异常处理类, 主需要在spring-mvc的配置文件中配置好这个bean即可.
java类:
public class CustomExceptionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
ModelAndView mv = new ModelAndView();
if(ex instanceof AuthorizationException) {
mv.addObject("error", "shiro权限验证失败!当前角色不是admin!");
} else {
mv.addObject("error", ex.getMessage());
}
mv.setViewName("system/unauthorized");
return mv;
}
}
配置文件:
<bean class="com.fgw.cms.controller.CustomExceptionResolver" />
前台页面:
当系统抛出了shiro的异常时的效果: