spring MVC中的異常統一處理

1.spring MVC中定義了一個標準的異常處理類SimpleMappingExceptionResolverjava

該類實現了接口HandlerExceptionResolverweb

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

//默認的異常名字
        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這兩個。sql

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

<!-- 統一異常處理 -->
    <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>來處理了mvc

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

 

大致上一個常規的統一異常處理就完工了!app

相關文章
相關標籤/搜索