目次:
- 例外条件での投げ込みエラー
- 呼び出し元にエラーを渡す
- Javaには、checked(JREによって監視されるもの)とunchecked(JREによって監視されないもの)の2種類の例外があります。チェックされていない例外を処理するオプションがあります。しかし、Javaでは、チェック例外を処理する必要があります。チェックされた例外が関連付けられているメソッドを使用しようとすると、コードはコンパイルされません。
Javaコードが問題を解決するために全力を尽くすことが不可欠です。しかし、コードが情報、リソース、権利などの問題を解決するための十分な情報を持っていないことがあります。
この場合、コードは例外オブジェクトを使用してエラーをスローします。 例外 という用語は、アプリケーションが実行する最初の行為ではなく、ルールの例外である必要があるため、適切です。それでも、アプリケーションでは例外的な対策が必要なエラーが発生します。以下のセクションでは、このような状況に対処する方法について説明します。
例外条件での投げ込みエラー
実際には、複数種類のエラーを生成するアプリケーションを作成することができます。通常、値が間違った範囲にある場合、エラーをスローしません。代わりにメッセージを直接ユーザーに表示します。ただし、メソッド内でエラーをスローしてキャッチする方法を示すサンプルを作成できます。
呼び出し元にエラーを渡す
<! - 2 - >あなたが始める多くのコード例は、main()からメソッドを呼び出すところまで到達し始めたところです。 main()メソッドは常にアプリケーションの最上位レベルです。メソッドを呼び出すと、呼び出すメソッドが追加レベルを形成します。
たとえば、main()から呼び出されるメソッドは、アプリケーションの2番目のレベルにあります。そのメソッドが別のメソッドを呼び出さなければならない場合、そのメソッドは3番目のレベルになります。ほとんどのアプリケーションは、多くのレベルの呼び出しで構成されています。
<!実際には、画面上で例外が発生すると、コールスタックと呼ばれる形式で現在のメソッドを呼び出したメソッドのリストが実際に表示されます。 コールスタックは、メソッドのリストと、他のメソッドによって呼び出される順序です。コールスタックを知ることで、アプリケーションの現在のレベルで発生しない潜在的なエラーの原因を突き止めるのに役立ちます。
エラーを処理することは、良いプログラミング実践の重要な部分です。常にクラッシュしない堅牢なアプリケーションが必要な場合は、適切なエラー処理を提供する必要があります。しかし、そのエラーを処理するのに十分な情報がないときにエラーを処理しようとすることも問題です。
あなたのコードが低レベルのエラーを修正しようとすると、それを修正する可能性のあるレベルからエラーを隠します。はい、あなたは可能な限り低いレベルでエラーを修正したいと思いますが、実際に何かより深刻なものを隠す可能性のある修復を犠牲にしてではありません。
アプリケーションの特定のレベルに、必要なリソース、情報、特権、ユーザーアクセス、またはエラーを処理するために必要なその他の項目がないと判明した場合、適切な例外オブジェクトを含むthrow文を発行します。以前のレベルのアプリケーションは例外を受け取り、それを処理できるかどうかを判断します。
ただし、main()メソッドが例外を受け取った場合は、エラーの処理方法を判断する必要があります。そうしないと、アプリケーションがクラッシュします。一般的にアプリケーションがクラッシュするようにするのは、プログラミングの習慣としては悪いことですが、アプリケーションが遭遇するエラーに対処するために何らかの方法を考え出す必要があります。
必要なエラー処理
Javaには、checked(JREによって監視されるもの)とunchecked(JREによって監視されないもの)の2種類の例外があります。チェックされていない例外を処理するオプションがあります。しかし、Javaでは、チェック例外を処理する必要があります。チェックされた例外が関連付けられているメソッドを使用しようとすると、コードはコンパイルされません。
チェック例外は、監視するクラス定義によってJREが通知される例外です。 JREは、クラスのユーザーにクラスの確実な実行を保証するために、例外の処理を強制します。
すべての種類の奇妙な詳細はチェックされた例外と未チェックの例外に関連しています。例外がチェックされているかどうかを知る簡単な方法は、親クラスを知ることです。 ErrorクラスまたはRuntimeExceptionクラスからサブクラス化されたすべての例外はチェックされず、他のすべての例外がチェックされます。
ベストプラクティスは、アプリケーション内のすべての例外を処理することです。例外がチェックされているかどうかは心配する必要はありません。優れた開発者は常に潜在的なエラーを処理します。