异常处理的思路
实现步骤
1.编写自定义异常类和错误页面
public class Myyichang extends Exception {
private String message;
public Myyichang(String message){
this.message=message;
}
@Override
public String getMessage() {
return message;
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
执行失败!
${message}
</body>
</html>
2.编写异常处理器和配置异常处理器
异常处理器
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//当捕捉到错误就异常处理器就执行
public class YichangResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
Myyichang ex = null;
if (e instanceof Myyichang) {
ex = (Myyichang) e;
} else {
ex = new Myyichang("系统正在维护");
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", ex.getMessage());
modelAndView.setViewName("error");//跳转到错误页面
return modelAndView;
}
}
配置异常处理器
控制器出现异常代码
@RequestMapping(path = "/yichang")
public String testyichang() throws Myyichang {
System.out.println("异常执行了");
try {
int i=1/0;
} catch (Exception e) {
e.printStackTrace();
//抛出自定义异常
throw new Myyichang("测试我的异常!!!");
}
return "sucess";
}