そもそもエラーハンドリングってどうするのが一般的なのだろう。
そもそも、JavaでServletの場合、エラーハンドリングってどうするのが一般的なのだろう。
ServletでWebフレームワーク*1作るときいつも悩むのが、以下のケース。
とりあえず、JSP呼出し中の例外ハンドリングに関しては、errorPage属性を使えばよさそう。
けど、サイズの大きい画面をJSPで作ってるときに、レスポンスが途中でflushしちゃっても、エラーページは表示されるのだろうか?
レスポンスがすぐにflushされないように設定するとかはできるけど、それは根本的な解決ではないような。
あと、errorPageに指定する画面てJSP?それともHTML?
もし、JSPにしたときは、さらにそのJSPでエラーが起きたらどうする?
JSP呼出し後の例外のハンドリングに関しては、っーか、『そもそもJSP呼出し後に例外が発生するようなことするなよ』ってことか?
でも、どうしても、JSP呼出し後に例外が発生するような処理をしなきゃならない場合、
レスポンスは既にコミットしてたりするから、エラーページを呼ぼうとするとIllegalStateExceptionが起きたりする。
いろいろめんどくさいので、現状、とりあえずcatchして、ログをはいて、ServletExceptionに包んで、さらに上にポイするで落ち着いている。
あとは、web.xmlのerror-pageが表示されればいいでしょう。と。
いろいろ書いたけど、細かいケースまで動かして検証したことがないから、頭の中がまとまらなくなってきた。
Strutsとかはこの辺りをどう実装しているのだろう?
*1:簡単なもの