[cubby-user:209] Re: Actionでの予期せぬ例外の捕捉に関しまして
tsuyoshi yoshizawa
[E-MAIL ADDRESS DELETED]
2011年 2月 3日 (木) 02:27:07 JST
はじめまして、よしざわといいます。
ロギングだけであれば ThrowsInterceptor を継承して (Seasar2 利用時)
それぞれ対応できますが、ページ遷移が難しいと感じます。
Cubby には Plugin 機構が提供されていて、いくつかのタイミングでフック
できるようになっています。そのうちの invokeAction を使うと例外クラスでうまく
ハンドリングできるかと思います。 Interceptor の AOP より分かりやすく
個人的に気に入っています。
実装方法は AbstractPlugin を継承し、 invokeAction メソッドをオーバライドし
Action 実行前後に try/catch を挟んで例外クラスごとに forward を切り替え
られます。
public class UncaughtExceptionHandlePlugin extends AbstractPlugin {
/**
* {@inheritDoc}
*/
@Override
public ActionResult invokeAction(ActionInvocation invocation) throws
Exception {
try {
return super.invokeAction(invocation);
} catch (XXXException e) {
return new Forward("/error/xxx.html");
} catch (YYYException e) {
return new Forward("/error/yyy.html");
}
}
}
Plugin を機能させるためには META-INF/services/org.seasar.cubby.plugin.Plugin
ファイルを作成し、プラグインのクラス名を 1 行ずつ記述する必要があります。
http://ml.seasar.org/archives/cubby-user/2009-October/000181.html
参考になればと思います。
(11/02/02 15:41), [E-MAIL ADDRESS DELETED] wrote:
> お世話になります。竹内と申します。
>
> Cubbyの実装方法に関して質問させていただきます。
>
> 実装環境
> Cubby 2.0.9
> Seaser 2.4.43
> Mayaa
>
> Actionで予期せぬ例外が発生した際、捕捉し、
> ログ出力や例外に応じたエラーページへ
> 遷移する実装をしたいと考えております。
>
> cubby-showcaseにありますAuthActionInterceptorの様な形で
> Interceptorクラスを用意する形が適切でしょうか。
>
> 大変恐れ入ります。
> ご回答のほど、よろしくお願いします。
> _______________________________________________
> cubby-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user
cubby-user メーリングリストの案内