Struts2でのAction個別のException捕捉

Struts2でグローバルなException捕捉の方法は( Struts2で例外を捕捉してエラーページを表示する方法 - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク )の通りだが、Action個別でのException捕捉方法は次の通り

<action name="user_add" class="UserAction" method="doAdd">
    <exception-mapping exception="java.sql.SQLException" result="sqlerror"/>
    <result name="sqlerror">/SQLException.jsp</result>
    <result>/editconf.jsp</result>
    <result name="input">/edit.jsp</result>
</action>

これで、SQLExceptionが発生した場合は result が "sqlerror" となり、 SQLException.jsp にディスパッチされる。

Action個別でExceptionを捕捉したい場面は多くはなさそうだが、あるAction中でだけException捕捉時のresultを別のものに変えたい場合はありそうだ。

ちょっとTIPS:これはExceptionMappingInterceptorのおかげなので exception インターセプタがインターセプタースタックに必須