SpringMVC的异常处理
-
异常处理思路
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进 行异常的处理。
-
SpringMVC的异常处理
- 自定义异常类
private static final long serialVersionUID = 4055945147128016300L;
// 异常提示信息
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public SysException(String message) {
this.message = message;
}
- 自定义异常处理器
/** * 异常处理器 * @author rt */
public class SysExceptionResolver implements HandlerExceptionResolver{
/** * 跳转到具体的错误页面的方法 */
/**
* 处理异常业务逻辑
* @param httpServletRequest 请求
* @param httpServletResponse 响应
* @param o 表示当前处理器对象
* @param ex 当前抛出的异常对象
* @return
*/
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse
response, Object handler, Exception ex) {
ex.printStackTrace();
SysException e = null;
// 获取到异常对象
if(ex instanceof SysException) {
e = (SysException) ex;
}else {
e = new SysException("请联系管理员");
}
ModelAndView mv = new ModelAndView();
// 存入错误的提示信息
mv.addObject("message", e.getMessage());
// 跳转的Jsp页面
mv.setViewName("error");
return mv;
}
}
5.配置异常处理器
<bean id="sysExceptionResolver" class="cn.lz.exception.SysExceptionResolver"/>