zoukankan      html  css  js  c++  java
  • spring MVC中的异常统一处理

    1.spring MVC中定义了一个标准的异常处理类SimpleMappingExceptionResolver

    该类实现了接口HandlerExceptionResolver

    2.看下SimpleMappingExceptionResolver都包含那些东西吧

    //默认的异常名字
            public static final String DEFAULT_EXCEPTION_ATTRIBUTE = "exception";
            //异常列表,包括什么异常要对应什么一场页面处理
            private Properties exceptionMappings;
            //排除的异常
            private Class<?>[] excludedExceptions;
            //默认异常处理页面
            private String defaultErrorView;
            //默认的状态 例如:500
            private Integer defaultStatusCode;
            //状态列表
            private Map<String, Integer> statusCodes = new HashMap<String, Integer>();
            //异常名字
            private String exceptionAttribute = DEFAULT_EXCEPTION_ATTRIBUTE;

    上面列出的属性,一般我们用到的Properties,defaultErrorView这两个。

    下面看看在spring-mvc.xml中的通用配置吧:

    <!-- 统一异常处理 -->
        <bean id="handlerExceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <!-- 定义的默认错误处理页面 -->
            <property name="defaultErrorView" value="error"></property>
            <!-- 定义错误类型和对应的页面处理 列表 -->
            <property name="exceptionMappings">
                <props>
                    <!-- 举个例子 -->
                    <prop key="java.sql.SQLException">error/sql</prop>
                </props>
            </property>
        </bean>

    3.当然我们做完这些工作,还不能完全把所有的异常信息都处理好,有些像404的我们就无能为力了,解决的方法就是在web.xml中定义<error-page>来处理了

    <error-page>
            <error-code>404</error-code>
            <location>/error/404.jsp</location>
        </error-page>

     

    大体上一个常规的统一异常处理就完工了!

  • 相关阅读:
    C# 为WebBrowser设置代理,打开网页
    C# WebBrowser 设置代理完全解决方案
    java读取文件的几种方式性能比较
    .NET 对文件和文件夹操作的介绍
    java利用反射打印出类的结构
    java输出月的日历控制台
    java 实现二分查找算法
    java实现快速排序
    解决window 12 service 不能调用excel ,报"System.Runtime.InteropServices.COMException (0x800A03EC)
    3 webpack 4 加vue 2.0生产环境搭建
  • 原文地址:https://www.cnblogs.com/haoke/p/5005799.html
Copyright © 2011-2022 走看看