SpringMVC的自定义异常处理
1.项目结构
2.分析
3. index.jsp
4.在Controller 定义跳转的方法
@RequestMapping("/testException")
public String testException() throws SysException
{
System.out.println("testException执行了...");
try
{
// 模拟异常
int a = 10/0;
}
catch (Exception e)
{
// 控制台打印异常信息
e.printStackTrace();
// 抛出自定义异常信息
throw new SysException("出现错误了,大家好,我是自定义异常...");
}
return "success";
}
5.自定义异常类
/**
* 自定义异常类
*/
public class SysException extends Exception{
// 存储提示信息的
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public SysException(String message) {
this.message = message;
}
}
6.自定义异常处理器
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
{
// 获取到的异常对象
SysException e = null;
// instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例
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;
}
7.在Springmvc.xml 中配置异常处理器,否则不生效
8.定制跳转的错误页面,我们这里只是将自定义的异常信息取出,有了这个框架,以后可根据项目需求,自己添加所需内容。
9.总结
index.jsp --> Controller 对应的方法 --> 在该方法中抛出异常,并自定义异常信息,创建自定义异常类。–> 自定义异常处理器会帮我们进行处理,并跳转到响应的页面(error.jsp)