Javaでプログラミングしている間、プログラマーとしての私がRuntimeExceptionsをキャッチすることを検討する必要があるときはいつでもありますか?
5 に答える
例外をキャッチするのと同じ理由でRuntimeExceptionをキャッチします。それを使って何かをする予定です。おそらく、例外の原因を修正することができます。おそらく、単に別の例外タイプで再スローしたいだけです。
ただし、例外をキャッチして無視することは非常に悪い習慣です。
これが私が考えることができることです。
- 何か問題が発生した場合にエンドユーザーに適切なメッセージを表示したい場合は、RuntimeExceptionをキャッチしてログに記録します。次に、ブラストエラーの代わりに画面にいくつかの素敵なメッセージを表示します。
- フレームワーク固有のCheckedExceptionsをアプリケーション固有のRuntimeExceptionsにラップするには、ここで説明するように、 RuntimeExceptionをカスタム例外として使用することをお勧めします。
ユーザーの検証に基づいて、ユーザーにカスタムメッセージを表示する場合は、に進みRuntimeException
ます。
カスタムメッセージをラップしてからスローします。
throw new RuntimeException("Invalid userName/Password !");
基本的に、1つをキャッチしたいのは、アプリケーションを爆破させることができない場合だけです。これはこれをより詳細に説明する良い記事ですが、これはそれを要約した引用です:
"If a client can reasonably be expected to recover from an exception, make it a
checked exception. If a client cannot do anything to recover from the exception,
make it an unchecked exception".
未チェックの例外は基本的にコードの単なるバグであり、実際にはそれらについて何もできない場合にのみスローする必要があるため、例外をキャッチしたいのは、アプリケーションを爆破できない場合だけです。
はい:あなたがそれらから回復することができて、望むときはいつでも。
多くの一般的な例外は継承されRuntimeException
、それぞれが特定の状況に応じて回復できる場合とできない場合があります。クラス自体は、RuntimeException
例外をキャッチする必要がある、またはキャッチしてはならないことを意味するものではありません。
たとえば、IllegalArgumentException
特定の入力をスローするライブラリメソッドがあるとします。プログラムに該当する場合は、この例外をキャッチして、別の入力を試行したり、操作を続行できない理由をユーザーに説明したりするなど、何らかの方法で回復できます。