springmvc如何设置全局异常信息处理

如何能够对全局的异常信息进行捕获处理呢,最快捷有效的做法是使用SimpleMappingExceptionResolver来对全局异常信息进行捕获,具体实现方法如下:
在springmvc中做如下配置,
注入SimpleMappingExceptionResolver类,并设定异常映射关系exceptionMappings以及状态码statusCodes,

  1. 注入SimpleMappingExceptionResolver类
  2. 设定异常映射关系exceptionMappings
  3. 设定状态码状态码statusCodes
  4. 设定日志级别
  5. 设定错误输出页面
    <!--全局错误输出 -->
     <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Exception">errors/500</prop>
                <prop key="java.lang.Throwable">errors/500</prop>
            </props>
        </property>
        <property name="statusCodes">
            <props>
                <prop key="errors/500">500</prop>
            </props>
        </property>
        <!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 -->
        <property name="warnLogCategory" value="WARN"></property>
        <!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 -->
        <property name="defaultErrorView" value="errors/500"></property>
        <!-- 默认HTTP状态码 -->
        <property name="defaultStatusCode" value="500"></property>
    </bean>

这里写图片描述

添加500异常显示页面

<h3>哎呦,系统失联了...</h3>
    <div id="exception" style="display: none">

        <%
            Exception ex = (Exception) request.getAttribute("exception");
        %>
        <H2>
            Exception:
            <%=ex.getMessage()%></H2>
        <P />
        <%
            ex.printStackTrace(new java.io.PrintWriter(out));
        %>

这里写图片描述

搞定以上,你的全局异常信息捕获就ok了

猜你喜欢

转载自blog.csdn.net/leegoowang/article/details/79158490