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>

     

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

  • 相关阅读:
    ubuntu16.04自动删除内核
    禅道服务数据的迁移
    k8s常用命令3
    使用logstash迁移es集群数据
    es集群迁移脚本
    helm常用命令1
    【操作】python2升级到python3
    【推荐】构建脚本之shell编写规范
    【推荐】linux使用zip命令
    Sublime使用大全
  • 原文地址:https://www.cnblogs.com/haoke/p/5005799.html
Copyright © 2011-2022 走看看