springMVC异常处理器
一、搭建基本环境
基本环境的搭建已经在前面介绍到,这里不再赘述,可以参考这里。
二、编写我的异常类
package com.xsl.exception;
public class MyException extends Exception{
private String message;
public MyException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public MyException() {
}
}
三、异常处理器
package com.xsl.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 MyExectionResolver implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
MyException exception = null;
if (e instanceof MyException){
exception = (MyException) e;
}else {
exception = new MyException("系统正在维护");
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("errorMsg",exception.getMessage());
modelAndView.setViewName("error");
return modelAndView;
}
}
三、在springmvc配置文件配置异常处理器
<bean class="com.xsl.exception.MyExectionResolver" id="myExectionResolver"></bean>
四、测试异常
1、接口路由
package com.xsl.controller;
import com.xsl.exception.MyException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/exception")
public class ExectionCatch {
@RequestMapping("/test")
public String test() throws MyException {
try{
int num = 1/0;
return "success";
}catch (Exception e){
throw new MyException("不能除0啦");
}
}
}
2、访问
<body>
测试异常处理器:<a href="exception/test">点我</a>
</body>