在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:property
value
=
"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中配置全域性異...