1.编写自定义异常类
package com.leon.exception;
//自定义异常类
public class SysException extends Exception{
private String messgae;
public SysException(String messgae) {
this.messgae = messgae;
}
public String getMessgae() {
return messgae;
}
public void setMessgae(String messgae) {
this.messgae = messgae;
}
@Override
public String toString() {
return "SysException{" +
"messgae='" + messgae + '\'' +
'}';
}
}
2.编写异常处理器
package com.leon.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 SysExceptionResolvor implements HandlerExceptionResolver{
@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);
mv.setViewName("error");
return mv;
}
}
3.配置异常处理器
<!--配置异常处理器 -->
<bean id="sysExceptionResolvor" class="com.leon.exception.SysExceptionResolvor"></bean>
测试:
jsp页面点击超链接
<h3>异常</h3>
<a href="/user/testException">异常</a>
Usercontroller控制器在处理时产生了异常
//异常
@RequestMapping("/testException")
public String testException() throws SysException {
System.out.println("testException执行了");
try {
//模拟异常
int i = 10/0;
} catch (Exception e) {
//打印异常信息
e.printStackTrace();
//抛出自己定义的异常
throw new SysException("查询所有用户出现错误了。。。");
}
return "success";
}
然后被SysExceptionResolvor 异常处理器处理后跳转到error.jsp页面