异常处理的思路
1.Controller调用service,service调用dao,异常都是向上抛出的,最终由DispatcherServlet找异常处理器进行异常的处理。
1、编写自定义异常类(做提示信息)
package net.togogo.exception;
/**
* 自定义的异常类
*/
public class SysException extends Exception{
private String message;
public SysException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2、编写异常处理器
package net.togogo.exception;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 异常处理器
*/
public class SysExceptionResolver implements HandlerExceptionResolver {
/**
* 处理异常逻辑
* @param httpServletRequest
* @param httpServletResponse
* @param o
* @param e
* @return
*/
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
//获取到异常处理对象
SysException sysException = null;
if(e instanceof SysException){
sysException = (SysException)e;
}else{
sysException = new SysException("系统正在维护。。");
}
//创建ModelAndView对象
ModelAndView mv = new ModelAndView();
mv.addObject("errorMsg",sysException.getMessage());
mv.setViewName("error");
return mv;
}
}
3、配置异常处理器
<!--配置异常处理器-->
<bean id="sysExceptionResolver" class="net.togogo.exception.SysExceptionResolver"/>