1.異常
では Javaのクラスに例外情報パッケージ。問題がある場合は、例外クラスのオブジェクトを作成して(例えば、異常な位置、原因など)は例外関連情報をスローします。
で異常記述するためにJavaの例外クラスを使用して。
参照例外に記載のAPIを、例外クラスおよびそのサブクラスは、Throwableを発生することがあり、Javaプログラムの例外を表すために使用されるフォーム、および生成された合理的な例外処理の異常を必要とします。
例外の継承関係は、それが親クラスのThrowableです。ThrowableのJava言語はすべて間違っていたり、珍しいスーパーカテゴリー、すなわちクラスの祖先です。
異常では Exceptionクラス、説明するための特殊なサブクラスであり、はRuntimeExceptionのサブクラス、はRuntimeException及び他のサブクラスはJavaプログラムを実行する過程で発生する可能性があります。
異常な例外同じレベルのエラーがあると、それはThrowableを Javaプログラムに重大なエラーが発生することが示すのに使用されるサブクラス、。唯一の解決策は、エラーのエラーを回避するためにコードを変更します。
要約:
Throwableを:それはすべて間違っていると異常なスーパークラス(上位クラス)であります
| - エラーエラー
| - JAVAの手順をコンパイルするときに例外コンパイル時の例外が発生します
| - のRuntimeExceptionの実行時例外、新たな問題を実行しているプロセスのJAVAプログラム
異常やエラーの違い
異常:コンパイルの実行中に、プログラムで発生した異常を指し、(XxxException)、我々は特定の異常な処理を行うことができます。例外を処理できない場合は、プログラムが実行を終了します。
エラーは:操作中に発生したエラーのいくつかの並べ替えがプログラムを参照(XxxError)、エラーエラーは、通常は、特定の治療プログラムは、実行を終了されませんされています。エラーエラーは、多くの場合、システムレベルの問題は、システムが発生したJVM、およびJVMにフィードバックされているが発生します。私たちが扱うことができないために、それだけで、コードを修正することができます。
例外スローを投げます
プロセスを定義する場合、プロセスパラメータは同意する必要があります。正当であれば、あなたは、データの法的なパラメータを決定するために必要なすべての最初の、受信したパラメータを使用してメソッドを呼び出すときに、データ、あなたが合法的で来るようにデータを転送し、発信者を教えてください。そして、あなたは、発信者に伝えるために例外をスロー使用する必要があります。
では Javaの、指定された例外オブジェクトをスローするために使用されるスローキーワードが提供されます
実行します。
1、例外オブジェクトを作成します。いくつかのヒントをパッケージ化(情報は、独自に書くことができます)。
2、この例外オブジェクトは、呼び出し側に通知する必要があります。どのようにそれを通知するには?どのようにこの例外オブジェクトは、それを呼び出し側に渡されましたか?キーワードで完了するために、投げます。例外オブジェクトを投げます。
方法で使用される、例外をスローするオブジェクトは、例外が呼び出し側にオブジェクトを渡し、現在のメソッドの実行を終了投げます。
フォーマットを使用します:
新しい例外クラス名(パラメータ)を投げます。
例えば:
(「アクセスするARR配列が存在しない」)新しいNullPointerExceptionがスロー。
新しいは、ArrayIndexOutOfBoundsExceptionをスロー(「インデックスが配列に存在しない、それは範囲外となっています」);
コードは示しています。
指定したインデックス位置にある配列要素の値へのアクセスを提供し、ツールを書きます
クラスArrayTools {
//指定された配列を介して、指定されたインデックスに対応する要素の値を返します。
パブリックstatic int型getElement(INT [] ARR、INTインデックス){
/ *
プログラムの例外のうち場合、 JVMは例外オブジェクトをパッケージ化し、スローされます。しかし、それが提供する情報は、強制的に十分ではありません。より明確にしたい、あなたが例外をスローするために必要な情報。
実行時に以下の条件が満たされているかどうかの確認、ポストスロースローオブジェクトを、メソッドが動作を継続することができませんでした。そして、それは、現在のメソッドの実行、および呼び出し側に通知し、異常を終了します。そして、あなたは、例外が解決しようとする必要があります。
* /
IF(ARR == NULL){
(「監督配列が存在しませんARR」)新しいNullPointerExceptionがスロー。
}
IF(インデックス<0 ||インデックス> = arr.length){
新しいArrayIndexOutOfBoundsExceptionがスロー(「標準誤差角を、」+インデックス+は、「インデックス配列には存在しません」);
}
INT要素= ARR [インデックス]。
要素を返します。
}
}
テストカテゴリ
クラスExceptionDemo3 {
パブリック静的無効メイン(文字列[] args){
INT [] ARR = {34,12,67は}; //は、アレイを作成します
= ArrayTools.getElement(NULL、2)のint NUM; //メソッドを呼び出し、指定されたインデックスに配列要素を取得します
// INT NUM = ArrayTools.getElement(ARR、5); //指定されたインデックスに配列要素を得るメソッドを呼び出します
System.out.println( "NUM =" + NUM); //印刷要素の値が得られます
}
}
声明では、例外がスローされます
免責事項:呼び出し元に報告書のうち、アイデンティティの問題。よる方法にした場合(後の方法を説明するために)投げ投げコンパイル処理を取り込む異常ではなく、それはスローで宣言されなければならない、に対処するための発信者をしましょう。
例外宣言形式:修飾子 戻り型 メソッド名(パラメータ)} {例外クラス1、2 ...例外クラスをスロー
コードは示しています。
クラスデモ{
/ *
問題がある場合、関数を定義する場合、発信者に報告します。この方法で使用することができますキーワードの文をスローします。
* /
公共ボイドショー(int型x)は例外をスローします {
{(x> 0)であれば
新しい例外を投げます();
}他{
System.out.println( "ショーの実行");
}
}
}
この方法は、異常な状況の多様性を生み出す可能性がある場合、あなたは複数の例外クラスを作成することができ、カンマで区切られた、バックスロー、例外クラスの宣言をスローします。
例えば異常の複数:
パブリックstatic int型getElement(INT [] ARR、INTインデックス)がスローにNullPointerException、ArrayIndexOutOfBoundsExceptionが{
IF(ARR == NULL){
(「監督配列が存在しませんARR」)新しいNullPointerExceptionがスロー。
}
IF(インデックス<0 ||インデックス> = arr.length){
新しいArrayIndexOutOfBoundsExceptionがスロー(「標準誤差角を、」+インデックス+は、「インデックス配列には存在しません」);
}
INT要素= ARR [インデックス]。
要素を返します。
}