注解版本(SpringBoot同样适用)
- 使用
@ControllerAdvice
注解 - 模板代码如下
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import javax.servlet.http.HttpServletRequest;
@ControllerAdvice // 对controller中的方法做增强,做异常处理的增强
public class ControllerExceptionAdvice {
@ExceptionHandler(Exception.class) //但凡出现Exception异常就会进入到此方法
public String exceptionHandler(HttpServletRequest request,Exception ex){
//异常内容
String message = ex.getMessage();
//将内容设置到request域中
request.setAttribute("errorMsg",message);
// 转发到异常页面
return "forward:/error.jsp";
}
}
千万不要忘了,一定要扫到你也的类,不然不生效!!!
继承 HandlerExceptionResolver 版本
- HandlerExceptionResolver
- 要实现里面的一个方法
- 模板代码如下
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 统一异常处理
*/
public class MyException implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
ModelAndView modelAndView = new ModelAndView();
//将异常信息添加到域中
modelAndView.addObject("errorex",ex.getMessage());
modelAndView.setViewName("error");
//返回视图
return modelAndView;
}
}
添加到springMVC的配置文件中
代码语言:javascript复制<!-- 统一异常处理-->
<bean class="cn.itcsdn.exception.MyException"/>