SpringMVC 异常处理3种方案

我们的程序中难免会出现异常,但是出现异常后直接把500视图返还给用户太不友好了,所以我们可以使用SpringMVC中的异常处理机制来解决这个问题;

怎么使用SpringMVC的异常处理机制呢;

1.在spring配置文件中配置异常处理器

   <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
  //默认的异常配置
     <property name="defaultErrorView" value="/erro.jsp"></property> </bean>

只要配置了异常处理器,当系统发生异常时,就会自动跳转的配置的默认异常页面;

2.如果我们要在页面中打印异常信息怎么办呢?

其实很简单,只要在异常处理器中注入异常对象就可以了

   <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
      <property name="defaultErrorView" value="/erro.jsp"></property>
  //注入异常对象 <property name="exceptionAttribute" value="ex"></property> </bean>

发生异常时,系统会自动将异常对象放入作用域,value值就是对象名!

3.如果我们想在发生不同异常时,使页面跳转到相应的异常页面呢?

3.1首先我们需要创建一个自定义异常类;

public class UserException extends Exception {
    public UserException() {
        super();
    }
    public  UserException(String message){
        //调用父类带参构造,方便写入异常信息
        super(message);
    }
}

ok,,用户异常我们就有了

下面我们把这个异常的处理方式配置给异常处理器就可以了;

   <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
      <property name="exceptionAttribute" value="ex"></property>
      <property name="exceptionMappings">
         <props>
            <prop key="cn.lhl.exception.UserException">/erro.jsp</prop>
         </props>
      </property>

   </bean>
原文地址:https://www.cnblogs.com/www-datou-com/p/6768091.html