JavaのExceptionについてです。
http://www.javaworld.jp/technology_and_programming/-/10249-1.html
なかなか勉強になりますね。
わかってはいるんですが、ついつい条件判定に例外機構を使用してしまいます。
(1)処理コストが高くなる
(2)コードの可読性が悪くなる
というのが、例外機構を多用することのデメリット、ということです。
これは良く使う手ですね。
私が今作っているシステムでは、
設定ファイルが読み込めなかったり、データベースなど外部システムとの接続が確立できなかったりと、
システムとして続行不可能な例外が発生したときは、独自のRuntimeExceptionをthrowするように
プログラムを書いています。
開発規約として、プログラマーにソース中への記述をお願いしたり、
フレームワークにSeasar を使っているので、
Exceptionハンドリング用のInterceptor クラスを用意して対象クラスにAspectしたりして組み込んでいます。
■例外処理を一括して行う
これも、良く使う手ですね。
ExceptionHandlerか。大体みんな同じような名前付けますね(笑)
私は今はStrutsベースのWebアプリ開発がほとんどなので、
すべてのページで共通に使用するActionクラス(ex.BaseAction)にエラーハンドリングを集約させています。
Tomcat(Struts)に対して例外をthrowすると画面にStackTraceが出てしまい、
ユーザ向けサービスとしてはありえない姿になるので、、、、
すべてのExceptionはBaseActionでハンドリングします。
個々の画面単位で制御すべきExeptionについてはBaseActionを継承した各Actionでハンドリングし、
RuntimeException系の例外は、BaseActionに処理を委譲するためにthrowします。
BaseActionに例外が投げられたときは、内容にしたがって振り分けをして、
共通のエラー画面を表示させる、という感じですね。