隨筆-295  評(píng)論-26  文章-1  trackbacks-0

          異常控制

          ??Author: 江南白衣

          1.業(yè)務(wù)異常類

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

          ????? 2.原則上,要進(jìn)行相同處理的異常分為一類,用ERROR_CODE標(biāo)識(shí)不同。

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

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

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

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

          <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按異常類型定義單獨(dú)錯(cuò)誤頁(yè)面

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

          2.3 在JSP里單獨(dú)定義錯(cuò)誤頁(yè)面

          <@ errorPage="error.jsp">

          3.Spring MVC里的異常控制

          ?? spring-mvc可在xxx-serverlet.xml里定義default和 按Excepiton類型影射的錯(cuò)誤頁(yè)面, 和Servlet規(guī)范比,主要作了Spring特色的JSP路徑轉(zhuǎn)向和日志記錄.參見(jià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會(huì)同時(shí)處理jsp,servlet,和spring拋過(guò)來(lái)的異常

          ???????? 其中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); 記錄整個(gè)異常棧



          大盤(pán)預(yù)測(cè) 國(guó)富論
          posted on 2007-09-13 11:23 華夢(mèng)行 閱讀(1830) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 浙江省| 邹平县| 舟山市| 建水县| 西充县| 仙桃市| 迁安市| 灵川县| 英吉沙县| 双牌县| 望都县| 上栗县| 个旧市| 峨边| 乌海市| 竹山县| 惠来县| 贵定县| 留坝县| 赤水市| 夏河县| 屏山县| 潜江市| 革吉县| 江口县| 宝应县| 固始县| 庐江县| 建昌县| 革吉县| 罗源县| 思茅市| 孟州市| 福海县| 高安市| 盐源县| 太仓市| 陆丰市| 酒泉市| 新乐市| 鹰潭市|