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";
}
以上为自定义异常、自定义异常处理器以及声明等相关处理。