隨筆-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)一寫在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)向和日志記錄.參見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拋過來(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è)異常棧



          大盤預(yù)測(cè) 國(guó)富論
          posted on 2007-09-13 11:23 華夢(mèng)行 閱讀(1830) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 崇阳县| 马龙县| 白玉县| 锡林郭勒盟| 洪湖市| 安图县| 广平县| 浦北县| 廊坊市| 抚州市| 方城县| 江北区| 青铜峡市| 章丘市| 巧家县| 南投县| 如东县| 舟山市| 南京市| 原平市| 扎兰屯市| 建平县| 达拉特旗| 天津市| 元阳县| 水富县| 厦门市| 南投市| 惠东县| 安泽县| 石棉县| 清丰县| 崇文区| 英德市| 冀州市| 遂川县| 绵阳市| 广宗县| 化德县| 芦溪县| 越西县|