Struts2的宣告式異常處理

2021-06-09 23:54:22 字數 1412 閱讀 7899

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

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

/** 

* 執行更新

* * @return

*/public string update() catch (sqlexception e) catch (invalidinputexception e)

}

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

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

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

/** 

* 執行更新

* * @return

* @throws invalidinputexception

* @throws sqlexception

*/public string update() throws sqlexception, invalidinputexception

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

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

/internal_error.jsp

/invalid_input.jsp

/internal_error.jsp

/__success.jsp

/__error.jsp

下面說說異常處理:

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

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

... 

...

抱歉,伺服器內部錯誤。

...

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

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中配置全域性異...