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>