SAStruts話。 ケータイとパソコンでシステムエラーページを変えたいそうだ。ケータイとPCでアクションは別なのだが、困った事にサービスクラスを共用している。このサービスクラス、内部でS2JDBCがSQLRuntimeExceptionを投げる可能性があるのだが、この例外をアクションでcatchしてエラーページに遷移といった処理を書くのは面倒くさいし、RuntimeExcetionなので記述モレもありえる。そもそも、そんな処理はフレームワークがやるべき仕事だ。 SAStrutsもStrutsなのでglobal-exceptionが使えるが、これは例外の型を見て遷移先を指定するもののようなのでユーザエージェント等の条件ではシステムエラーページを分ける事ができない。ならばアスペクトを使って別の例外に変換すればいいのでは?と思ってやってみたら簡単にできた。 ThrowsInterceptorを