禍兮福所倚,福兮禍所伏

          想隨便當個小職員,隨便賺點錢然后隨便和一個不美也不丑的普通女孩結婚,隨便生兩個孩子,先生個女孩再生個男孩。等女兒結婚,兒子也能夠獨擋一面的時候,然后就退休,然后每天過著下著象棋和圍棋的悠閑生活。然后在自己的老婆死之前自己先老死這種生活多美好呀!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks

             除了錯誤處理機制以外,一個表示層框架必須提供本地異常信息的顯示和反饋機制。一個可行的方式是捕獲實際的異常和錯誤內容到日志文件中然后發送一個有意義的信息幫助用戶決定適當的操作。在jsp中沒有捕獲的異常,都將由jsp1.2規范定義的錯誤頁面機制處理。類似的,在servlets中沒有處理的異常將由web.xml定義的errorpage屬性處理。struts提供了一個簡單的機制,這個機制使用相同的錯誤頁面機制處理jsp和servlet容器的未處理的異常。struts-config.xml文件例子略。
             異常處理機制是建立在錯誤處理機制的基礎上的,因此也是使用消息資源提供本地消息信息。下面的圖示解釋了struts涉及到異常處理機制的類關系。

              分派的角色
              就像在RequestProcessor一節討論的一樣,request processor調用request handler的execute方法。任何request handler拋出的異常都被RequestProcessor捕獲然后在strutsconfig.xml中找到可能的匹配。RequestProcessor會調用ActionMapping.findException方法找到一個ExceptionConfig配置對象(是元素的運行時表現形式),它的類型屬性匹配異常類型。如果找不到一個配置,findException方法會一直沿著超類找匹配到最頂層類的匹配。ActionMapping.findException會在本地范圍和全局范圍的ActionMapping對象搜索元素。下面是一個全局對象元素定義的例子略。
              異常處理AppException
              在request handlers中這是一個創建exceptions的基類。它封裝了異常發生原因屬性()和相關的ActionError對象。一個AppException的子類可以提供合適的構造函數,通過可選的屬性名和對象參數,用消息key正確初始化對象。消息key可以從和異常對應的ExceptionConfig對象中獲得。涉及到AppException的API是構造函數列表(可以被子類調用),AppException作為ExceptionHandler.execute的方法參數傳遞的。

              轉換異常到ActionErrors中
              RequestProcessor查詢ExceptionConfig的異常處理定義。RequestProcessor創建特定的ExceptionHandler并調用它的execute方法并傳AppException作為參數。org.apache.struts.action.ExceptionHandler的一個默認的異常處理是預先配置在ExceptionConfig對象中的。ExceptionHandler從AppException對象獲得ActionError對象,然后根據ErrorsTag創建ActionErrors對象使用。如果異常不是AppException類或其繼承類,ExceptionHandler會用定義的元素創建一個ActionErrors對象。這樣就減輕了請求處理的開發人員寫額外的異常處理代碼。然而這樣就限制了框架僅能調用ActionError的一個構造函數,接收一個key參數值。如果需要可以用元素覆蓋默認的異常處理。ExceptionHandler類或其子類會使用ExceptionConfig中的路徑屬性創建一個ActionForward對象。如果該路徑沒有定義,那么就會使用ActionMapping配置對象中的輸入屬性中定義的路徑。ExceptionHandler也用Action.EXCEPTION_KEY保存原始的異常到請求對象中。一個視圖可以用任何方式自由處理這個信息。Action.EXCEPTION_KEY也可以被servlet容器的錯誤頁面機制使用來獲得根據原始異常重新拋出的異常。

          posted on 2005-06-09 09:09 塞翁 閱讀(141) 評論(0)  編輯  收藏 所屬分類: Java翻譯
          主站蜘蛛池模板: 霍城县| 阿拉善左旗| 尉犁县| 永康市| 唐山市| 荆门市| 白水县| 日土县| 泾源县| 安塞县| 永善县| 临沂市| 高青县| 杭锦后旗| 九台市| 定兴县| 家居| 大足县| 扶沟县| 运城市| 凤庆县| 四平市| 勐海县| 闽侯县| 石嘴山市| 安仁县| 乌什县| 湖口县| 武鸣县| 定西市| 青阳县| 祁东县| 伊宁市| 喀喇沁旗| 仁怀市| 宜良县| 吉木乃县| 顺平县| 彩票| 买车| 库尔勒市|