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

          異常控制

          ??Author: 江南白衣

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

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

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

          ????? 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ò)誤頁面

          <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ò)誤頁面

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

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

          <@ errorPage="error.jsp">

          3.Spring MVC里的異常控制

          ?? spring-mvc可在xxx-serverlet.xml里定義default和 按Excepiton類型影射的錯(cuò)誤頁面, 和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會同時(shí)處理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); 記錄整個(gè)異常棧



          大盤預(yù)測 國富論
          posted on 2007-09-13 11:23 華夢行 閱讀(1834) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 浦江县| 察隅县| 云安县| 封丘县| 黄梅县| 临泽县| 洪湖市| 台中县| 广州市| 大悟县| 黄梅县| 枣阳市| 常德市| 鹤壁市| 彭山县| 河池市| 钟山县| 平度市| 无锡市| 黔东| 拉萨市| 登封市| 交城县| 凤庆县| 青州市| 新疆| 来凤县| 多伦县| 昭平县| 松桃| 武义县| 永胜县| 旅游| 渑池县| 潼关县| 宁河县| 河曲县| 东台市| 赣州市| 临武县| 紫金县|