JAVAのExceptionについて(エラーハンドリング)
JAVAの例外の取り扱いについて
お世話になります。JAVAでWebアプリケーションを開発しているものです。エラーハンドリングについて、悩んでいます。
私は、我流でプログラムの開発を行ってきたため、エラーハンドリングについて、あまり知識がありません。
今回とあるプロジェクトのリーダーを任されることになり開発を進めていたのですが、気がついたらメンバーのプログラムにtry,catch,throwsなどのエラーハンドリングがコーディングされていない状態で困っています。(みんな外国人で私が今まで一から教えていました。)
そこで、皆様はどのようにJAVAで例外を扱っているのかをお伺いしたいと思い投稿いたしました。
私の少ない認識では、
(1)最上位のクラス、画面に一番近いクラスでtry,catchを行う
(2)Exceptionはすべてのクラスの例外をcatchするが、一つ一つのエラーを明確に定義する方がよい(何のエラーが発生したのかわからない為)
⇒ただし、ここが一番の悩みどころです。エラーを設定する考え方として、配列を扱っている場合は、ArrayIndexとか、ファイルを扱っている場合はI/OExceptionとかソースコードを見て判断すべきでしょうか?
(3)独自エラークラスを作る場合は、Exception,RunnableExceptionを敬称する。
⇒そもそも何故、独自Exceptionクラスを作る必要があるのでしょうか?画面によってメッセージ、処理、遷移先を変えたいから?
上記が私の持っている知識と、疑問点です。
正直自分自身がよくわかっていないため、他の外国人メンバーに説明できません。とりあえず、Exceptionをthrowするように言っているのですが、このままじゃまずいと思い投稿しました。
どなたか忌憚のないご意見をお聞かせください。
お礼
基本はExceptionを継承し、後処理を行った方が良いということですね。 それに対しRuntimeExceptionの場合は、特例・もしくは回復不能なエラーの場合にのみ使用ということですね。 確かにこの点に関しては、クラス設計に依存すると思いますので、Exception,RuntimeExceptionを使い分けるよう再度考えたいと思います。 丁寧な説明、ありがとうございました。 また何かありましたら、よろしくお願いします。