今天把自定义异常处理和404 默认页面实现了
404页面用springboot默认的话得使用同步访问
自定义异常有一般用于异步 我这里使用的是判断 axios 的异步
//以User对象为例子
@ExceptionHandler(value = {UserException.class})
public ModelAndView resolveException(HttpServletRequest request
, HttpServletResponse response
, Object handler, Exception ex) {
ModelAndView mv=new ModelAndView();
//搜了好久大概就是axios ky用accept
String header = request.getHeader("accept");
//异步请求
if(header.indexOf("application/json")!=-1){
HashMap<String,Object> map=new HashMap<>();
//这里用于前台接收值 code 是判断有没有报错 ,报错就把code 状态改成-1如果没报错就把状态改成>0的
map.put("code",-1);
//前天返回值为 加入是根据编号查询 就是User
map.put("message",ex.getMessage());
//用了这个可以接收view
MappingJackson2JsonView view=new MappingJackson2JsonView();
view.setAttributesMap(map);
mv.setView(view);
}else {
//这里是同步如果同步就返回到默认页面里面去
mv.setViewName("/error/usererror");
mv.addObject("message",ex.getMessage());
}
return mv;
}
前台代码 这里是根据编号查询时 如果琴台代码被删除就进入自定义异常
controller 层代码
实现类层 impl