struts2異常處理

2021-05-01 22:34:12 字數 2093 閱讀 3779

struts2的異常處理機制:

任何成熟的mvc框架都應該提供成就的異常處理機制。strut2也不例外。struts2提供了一種宣告式的異常處理方式。struts2也是通過配置的***來實現異常處理機制的。

exception:此屬性指定該異常對映所設定的異常型別。

result:此屬性指定action出現該異常時,系統轉入result屬性所指向的結果。

異常對映也分為兩種:

輸出異常資訊:

使用struts2的標籤來輸出異常資訊:

﹤s:property value="exception.message"/﹥:輸出異常物件本身。

﹤s:property value="exceptionstack"/﹥: 輸出異常堆疊資訊。

利用struts2的異常處理機制和***機制可以很方便的實現異常處理功能,你不再需要在action中捕獲異常,並丟擲相關的異常了,這些都交給***來幫你做了。

1.  在 struts.xml 檔案中,宣告全域性異常對映,以及對應的全域性異常**如下所示:

﹤global-results﹥

﹤result name="error"﹥/admin/error/errdisplay.ftl﹤/result﹥

﹤/global-results﹥

busines***ception  是異常處理類,**如下所示:

public class busines***ception extends runtimeexception

public busines***ception(throwable throwable)

public busines***ception(throwable throwable, string frdmessage)

private static string createfriendlyerrmsg(string msgbody)

}2.  /admin/error/errdisplay.ftl 頁面

這個頁面很簡單:

﹤body﹥

﹤h2﹥

出現異常啦

﹤/h2﹥

﹤hr/﹥

﹤h3 style="color:red"﹥

﹤!-- 獲得異常物件 --﹥

$﹤/h3﹥

﹤br/﹥

﹤!-- 異常堆疊資訊(開發人員用) --﹥

﹤div style="display:none;"﹥

$﹤/div﹥

﹤/body﹥

﹤body﹥

﹤h2﹥

出現異常啦

﹤/h2﹥

﹤hr/﹥

﹤h3 style="color:red"﹥

﹤!-- 獲得異常物件 --﹥

$﹤/h3﹥

﹤br/﹥

﹤!-- 異常堆疊資訊(開發人員用) --﹥

﹤div style="display:none;"﹥

$﹤/div﹥

﹤/body﹥

public string intercept(actioninvocation invocation) throws exception

catch(dataacces***ception ex)catch(nullpointerexception ex)catch(ioexception ex)catch(classnotfoundexception ex)catch(arithmeticexception ex)catch(arrayindexoutofbound***ception ex)catch(illegalargumentexception ex)catch(classcastexception ex)catch(securityexception ex)catch(sqlexception ex)catch(nosuchmethoderror ex)catch(internalerror ex)catch(exception ex)

after(invocation, result);

return result;

}struts2做異常處理還是比較方便的了。

struts2異常處理

struts2中的異常處理有兩種形式 一種是區域性異常處理,一種是全域性異常處理 全域性的異常處理可以被該包下所有的action使用,而區域性異常處理只能被乙個action使用。異常處理的結果的執行流程也是如此,先區域性後全域性,即使異常處理類是全域性的,struts也會先去區域性找是否有對應的異常...

Struts2 異常處理

總結以下struts2配置檔案中 宣告式異常處理 exception 指定需要捕獲的的異常型別。異常的全類名 result 指定乙個響應結果,該結果將在捕獲到指定異常時被執行,既可以來自當前 action 的宣告,也可以來自 global results 宣告.案例 web inf pages de...

Struts2之異常處理

一 學習案例 通過在input.jsp 頁面輸入登入賬號和password測試異常處理機制。二 案例分析 struts2 提供了區域性異常處理機制和全域性異常處理機制。區域性優先於全域性異常處理,當異常找不到區域性異常處理時才會查詢全域性異常處理。a 異常類宣告 public class usern...