SpringMVC异常处理
1.创建控制器
@Controller
public class ExceptionController {
@RequestMapping("Welcome")
public String welcome() throws SysException {
try {
int i = 10/0;
} catch (Exception e) {
System.out.println("出错了");
e.printStackTrace();
throw new SysException("出错了");
}
return "items/Welcome";
}
}
我通过配置让访问localhost:8080/Welccome.do
可以执行welcome()
方法
2.自定义异常
public class SysException extends Exception{
String message;
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public SysException(String message){
this.message=message;
}
}
3.定义异常处理器
public class SysExceptionHandler implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e){
SysException ex = null;
if(e instanceof SysException){
ex = (SysException)e;
}else{
ex = new SysException("系统正在维护中");
}
ModelAndView mav = new ModelAndView();
mav.setViewName("error");
mav.addObject("error", ex.getMessage());
return mav;
}
}
4.在SpringMVC.xml里面配置使得SysExceptionHandler被创建来监听异常
<bean class="Exception.SysExceptionHandler"></bean>
5.自定义异常页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>出错了</title>
</head>
<body>
${error}
</body>
</html>
6.演示