SpringMVC 中的异常处理

来源:互联网 发布:seo视频教程百度云 编辑:程序博客网 时间:2024/06/02 07:14
  • 使用Spring MVC 提供的简单异常处理器SimpleMappingExceptionResolver
  • 实现Spring 的异常处理接口HandlerExceptionResolver自定义自己的异常处理
  • 使用@ExceptionHandler注解实现异常处理(推荐
1. 简单额异常处理,推荐使用SimpleMappingExceptionResolver
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">    <!--定义默认的异常处理叶念,当该异常类型的注册时使用-->    <property name="defaultErrorView" value="error"/>    <!--定义异常处理页面用来获取异常信息的变量名,默认 exception-->    <property name="exceptionAttribute" value="ex"/>    <!-- 定义需要处理的异常,用类名或完全限定名作为key,异常页名做为值-->    <property name="exceptionMappings">        <props>            <prop key="test.ParameterException">error-param</prop>        </props>        <!--这里还可以继续扩展对不同异常类型的处理-->    </property></bean>
2. 实现自己的HandlerExceptionResolver ,第4个参数表示对那种异常类型进行处理
import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class test implements HandlerExceptionResolver {    @Override    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {        return null;    }}
<bean id="test" class="test">
3.使用@ExceptionHandler注解实现异常处理:
  • 增加BaseController类,并在类中使用@ExceptionHandler注解声明异常类型
  • 使所有需要异常处理的Controller都继承了该类
public class BaseController{    public String exp(HttpServletRequest request,Exception ex) {        request.setAttribute("ex",ex);        if(ex instanceof ParameterException){            return "error-parameter";        }else {            return "error"        }    }
原创粉丝点击