异常处理思路
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理
SpringMVC异常处理
- 自定义异常类
/**
* 自定义异常类
*/
public class SysException extends Exception {
//存储提示信息
private String message;
public SysException(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
自定义异常类的作用是做提示信息的
2. 编写异常处理器
实现HandlerExceptionResolver
借口
public class SysExceptionResolver implements HandlerExceptionResolver {
/**
* 处理异常的业务逻辑
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param ex
* @return
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
//准备获取异常对象
SysException e = null;
if(ex instanceof SysException){
e = (SysException) ex;
}else{
e = new SysException("系统正在维护");
}
//创建ModelAndView对象
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",e.getMessage());
mv.setViewName("error");
return mv;
}
}
- 配置异常处理器(决定跳转到哪个提示页面)
在springmvc.xml中配置
<!-- 配置异常处理器-->
<bean id="sysExceptionResolver" class="com.mrdeer.exception.SysExceptionResolver">
</bean>