`

springmvc的异常处理相关内容总结

阅读更多

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";
}

 以上为自定义异常、自定义异常处理器以及声明等相关处理。

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics