springmvc的异常处理相关内容,步骤如下:
1)自定义异常类:
public class DefineException extends Exception { private static final long serialVersionUID = 1L; public DefineException(String message) { this.message = message; } private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
2)自定义异常处理器,需要实现spring提供的HandlerExceptionResolver接口类。
public class DefineExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { DefineException defineException = null; if(ex instanceof DefineException){ defineException = (DefineException)ex; }else{ defineException = new DefineException("未知异常"); } ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", defineException.getMessage()); modelAndView.setViewName("error"); return modelAndView; } }
3)在spring配置文件中配置自定义异常处理器类。
<!-- 自定义全局异常处理器类,实现HandlerExceptionResolver接口 --> <bean class="cn.sjf.ssm.exception.DefineExceptionResolver" />
4)在dao层、services、controller根据业务要求自定义异常,并向调用的上一层抛出,最终在DispatcherServlet中调用对应的异常处理器进行处理。如下:
@RequestMapping("/editItems") public String editItems(Model model, @RequestParam(value="id",required=true) Integer item_id)throws Exception{ ItemsCustom itemsCustom = itemsService.selectByPrimaryKey(item_id); if(itemsCustom == null){ throw new DefineException("修改订单信息不存在。"); } return "items/editItems"; }
以上为自定义异常、自定义异常处理器以及声明等相关处理。