步骤:
1、自定义一个异常类;
2、自定义异常处理器;
3、配置异常处理器;
4、演示代码;
一、自定义一个异常类
注意:该类要继承Exception类
package cn.gpxxg.exception;
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;
}
}
二、自定义异常处理器
注意:该类一定要实现HandlerExceptionResolver接口,并且覆盖重写接口的resolveException方法;
package cn.gpxxg.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 {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
SysException sys = null;
if (e instanceof SysException)
{
sys = (SysException) e;
}
else
{
sys = new SysException("系统维护中...");
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", sys.getMessage());
modelAndView.setViewName("error");
return modelAndView;
}
}
三、配置异常处理器
注意:很简单,就是在springmvc的配置文件中,使用bean标签注入,注入后,异常处理器才会起作用
<!--配置异常处理器-->
<bean id="sysExceptionResolver" class="cn.gpxxg.exception.SysExceptionResolver"></bean>
四、演示代码
package cn.gpxxg.controller;
import cn.gpxxg.exception.SysException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/testException")
public class TestException {
@RequestMapping("/exception1")
public String exception1 () throws SysException
{
System.out.println("test1执行了");
try {
int i = 1/0;
} catch (Exception e) {
// 在控制台打印错误信息
e.printStackTrace();
throw new SysException("出现异常,请重试");
}
return "success";
}
}