隨筆-295  評論-26  文章-1  trackbacks-0

          異常控制

          ??Author: 江南白衣

          1.業(yè)務異常類

          ????? 1.所以業(yè)務異常類派生于BusinessException基類。

          ????? 2.原則上,要進行相同處理的異常分為一類,用ERROR_CODE標識不同。

          ????? 3.出錯信息統(tǒng)一寫在errors.properties,以ERROR_CODE為主鍵,支持i18N,由基類提供默認的getMessage()函數(shù)。

          ????? 參考BussinessException.java和OrderException.java。

          2.Servlet規(guī)范里的異常控制

          ?2.1按error-code統(tǒng)一定義錯誤頁面

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

          2.2按異常類型定義單獨錯誤頁面

          <error-page>
          ? <exception-type>org.sprngside.bookstore.UserNotFound</exception-type>
          ? <location>/userNotFound.jsp</location>
          </error-page>

          2.3 在JSP里單獨定義錯誤頁面

          <@ errorPage="error.jsp">

          3.Spring MVC里的異常控制

          ?? spring-mvc可在xxx-serverlet.xml里定義default和 按Excepiton類型影射的錯誤頁面, 和Servlet規(guī)范比,主要作了Spring特色的JSP路徑轉(zhuǎn)向和日志記錄.參見bookstore-servlet.xml

            <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
          ??????? <property name="defaultErrorView" value="/error.jsp"/>
          ??????? <property name="exceptionMappings">
          ??????????? <props>
          ??????????????? <prop key="org.springside.framework.base.BusinessException">/businessError.jsp</prop>
          ??????????? </props>
          ??????? </property>
          ??? </bean>

          4. error.jsp的處理

          ???????? error.jsp會同時處理jsp,servlet,和spring拋過來的異常

          ???????? 其中jsp的異常在exception 變量中.

          ???????? servlet的異常在(Exception)request.getAttribute("javax.servlet.error.exception")

          ???????? spring的異常在(Exception) request.getAttribute("exception")

          ???????? 使用 (String) request.getAttribute("javax.servlet.error.request_uri")獲得 request_uri
          ?????????使用 logger.error(exception.getMessage(), exception); 記錄整個異常棧



          大盤預測 國富論
          posted on 2007-09-13 11:23 華夢行 閱讀(1834) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 隆回县| 维西| 杨浦区| 松原市| 右玉县| 隆化县| 永州市| 林口县| 新干县| 砚山县| 屯留县| 扬中市| 辰溪县| 华蓥市| 定边县| 收藏| 忻州市| 额敏县| 深水埗区| 普格县| 德保县| 湖南省| 呼和浩特市| 黑龙江省| 胶州市| 阜平县| 志丹县| 湖南省| 灵寿县| 陆良县| 金寨县| 承德市| 麻城市| 芷江| 桓台县| 浪卡子县| 连南| 东港市| 阳江市| 余庆县| 基隆市|