例外とは、プログラムの実行中に発生するエラーのことを指します。
Java の例外 (例外とも呼ばれます) は、プログラムの実行中に発生し、実行中のプログラムの通常の命令フローを中断するイベントです。プログラムの実行エラーを迅速かつ効果的に処理するには、例外クラスを使用する必要があります。 [推奨学習: Java コース]
例外の原因と使用原則
Java では、例外が発生する主な理由は 3 つあります。 : 1 つの理由:
Java 仮想マシンによって生成された例外である Java 内部エラー例外が発生しました。
ヌル ポインタ例外、配列範囲外例外など、記述されたプログラム コードのエラーによって発生する例外。この種の例外は未チェック例外と呼ばれ、通常、これらの例外を特定のクラスで集中的に処理する必要があります。
throw ステートメントを通じて手動で生成された例外はチェック例外と呼ばれ、通常はメソッドの呼び出し元に必要な情報を通知するために使用されます。
Java は、オブジェクト指向のアプローチを通じて例外を処理します。メソッドの実行中に例外が発生すると、メソッドは例外を表すオブジェクトを生成し、それをランタイム システムに渡します。ランタイム システムは、例外を処理するための対応するコードを探します。
例外オブジェクトを生成し、それをランタイム システムに送信するプロセスを例外のスローと呼びます。ランタイム システムは、その種類の例外を処理できるオブジェクトが見つかるまでメソッドの呼び出しスタックを検索します。このプロセスは例外のキャッチと呼ばれます。
Java 例外により、ユーザーはプログラムの堅牢性とセキュリティを考慮する必要があります。例外処理は、プログラムの通常のフローを制御するために使用されるべきではありません。その主な機能は、プログラムの実行中に発生する例外を捕捉し、それに応じて処理することです。特定のメソッドで発生する可能性のある例外を処理するコードを作成する場合は、次の 3 つの原則に従うことができます。
現在のメソッド宣言で try catch ステートメントを使用して例外をキャッチします。
メソッドがオーバーライドされると、それをオーバーライドするメソッドは同じ例外または例外のサブクラスをスローする必要があります。
親クラスが複数の例外をスローする場合、オーバーライド メソッドはそれらの例外のサブセットをスローする必要があり、新しい例外をスローすることはできません。
例外タイプ
Java のすべての例外タイプは、組み込みクラス java.lang.Throwable クラス、つまり Throwable のサブクラスです。クラス階層の最上位レベルの例外にあります。図 1 に示すように、Throwable クラスの下には、Exception と Error という 2 つの例外ブランチがあります。
図 1 例外の構造図
Throwable クラスはすべての例外とエラーのスーパー クラスであり、以下の 2 つのサブクラスがあります: Error と Exception。それぞれ例外。このうち、例外クラス Exception は実行時例外と非実行時例外に分けられ、非チェック例外(Unchecked Exception)、チェック例外(Checked Exception)とも呼ばれ、両者には大きな違いがあります。
Exception クラスは、ユーザー プログラムで発生する可能性のある例外に使用され、カスタム例外タイプのクラスの作成にも使用されます。
Error は、通常の状況ではプログラムによってキャッチされることが予期されない例外を定義します。タイプ Error の例外は、ランタイム システム自体に関連するエラーを表示するために Java ランタイムによって使用されます。スタック オーバーフローは、このエラーの例です。
この章では、Error タイプの例外処理については説明しません。これらは通常、プログラムの制御を超えた致命的かつ致命的なエラーであるためです。この章の残りの部分では、Exception タイプの例外処理について説明します。
ランタイム例外は、NullPointerException、IndexOutOfBoundsException など、RuntimeException クラスとそのサブクラスの例外です。これらの例外はチェックされず、プログラム内でキャプチャまたは処理されない可能性があります。これらの例外は通常、プログラムの論理エラーによって発生するため、プログラムは論理的な観点からこのような例外の発生を回避するように努める必要があります。
非実行時例外とは、RuntimeException 以外の例外を指し、それらはすべて Exception クラスとそのサブクラスに属します。プログラムの文法上、必ず処理しなければならない例外であり、処理しないとプログラムはコンパイルされません。 IOException、ClassNotFoundException など、およびユーザー定義の例外例外。通常、カスタムのチェック例外は使用されません。表 1 に、いくつかの一般的な例外の種類とその機能を示します。
以上がJavaの例外とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。