Struts2的宣告式異常處理

2021-06-26 18:19:04 字數 1858 閱讀 7537

在struts2應用程式中你還在使用try catch語句來捕獲異常麼?如果是這樣的,那你out啦!struts2支援宣告式異常處理,可以再action中直接丟擲異常而交給struts2來處理,當然需要我們在xml檔案中配置,由於丟擲同樣的異常的處理方法通常都一樣,所以如果能在xml中配置全域性異常,將會使得開發便捷性大大提高。

以前的異常捕獲可能是這樣的:

/**

* 執行更新

*

* @return

*/

publicstring update()catch(sqlexception e)catch(invalidinputexception e)

}

這種方式是完全的手動處理異常,一來不夠簡潔明快,而且還不容易維護,畢竟如果修改了這些**都需要再次編譯。

採用struts2的宣告式異常處理就會簡單很多了。

首先,上面的**的try catch 就可以全都不要了,但是,當然,得新加throw語句丟擲異常:

/**

* 執行更新

*

* @return

* @throws invalidinputexception

* @throws sqlexception

*/

publicstring update()throwssqlexception, invalidinputexception

**清晰了很多,不是麼?

捕獲異常的任務則交給xml配置檔案了,配置檔案還是比較容易理解的:

/internal_error.jsp

/invalid_input.jsp

/internal_error.jsp

/__success.jsp

/__error.jsp

下面說說異常處理:

在我們編寫上面的xml配置的時候可能會遇到如下錯誤:

最後,我們說說檢視層怎樣獲取異常資訊,invalid_input.jsp檔案是這樣的:

...

... 抱歉,伺服器內部錯誤。

...

表示從valuestack中獲取錯誤資訊,顯示在前台頁面上。當然,我們也可以選擇更人性化得處理方案,比如說,放個失望的表情,寫上「抱歉,伺服器內部錯誤,您可以發郵件給我們提示此錯誤,***x@***x.com」等等;
經測試,當發生sqlexception的時候,頁面資訊如下:

好了,很高興來到園子,嘿嘿,希望這篇文章對大家有用。

Struts2的宣告式異常處理

在struts2應用程式中你還在使用try catch語句來捕獲異常麼?如果是這樣的,那你out啦!struts2支援宣告式異常處理,可以再action中直接丟擲異常而交給struts2來處理,當然需要我們在xml檔案中配置,由於丟擲同樣的異常的處理方法通常都一樣,所以如果能在xml中配置全域性異常...

Struts2的宣告式異常處理

在struts2應用程式中你還在使用try catch語句來捕獲異常麼?如果是這樣的,那你out啦!struts2支援宣告式異常處理,可以再action中直接丟擲異常而交給struts2來處理,當然需要我們在xml檔案中配置,由於丟擲同樣的異常的處理方法通常都一樣,所以如果能在xml中配置全域性異常...

Struts2的宣告式異常處理

在struts2應用程式中你還在使用try catch語句來捕獲異常麼?如果是這樣的,那你out啦!struts2支援宣告式異常處理,可以再action中直接丟擲異常而交給struts2來 處理,當然需要我們在xml檔案中配置,由於丟擲同樣的異常的處理方法通常都一樣,所以如果能在xml中配置全域性異...