1.のThrowable、エラーと例外との関係を明らかにする。
。java.langでのThrowableクラスは、Java言語、任意のエラーや異常なスーパークラスです。
例外:異常コンパイル、コンパイル(コードを書く)は、Javaプログラムの問題が発生した
プロセスで実行時例外、問題が表示されたJavaプログラムを実行するには:のRuntimeException
の異常を同等のプログラムは、プログラムが(いくつかの薬を服用して革命を継続する)続けることができ例外が出て取り扱い、小さな問題(風邪、発熱)を有していた
エラーのエラー:
エラー同等のプログラムが無法問題を購入していた(SARSをAIDS)、あなたがソースコードを変更する必要があり、プログラムを続行することができます
2.スロー区別し、キーワードスローします。
:(1)キーワード投げる
アクションを:
あなたは、キーワードスロースローメソッドを使用することができ、例外に指定された指定された
フォーマットを使用して:
新新xxxException(「の原因異常産生」)を投げる;
注:
1. throwキーワードは、メソッドに記述する必要があります内部
の新しいオブジェクトの背後にある2 throwキーワードをしなければならない例外またはExceptiomサブクラスのオブジェクト
3. throwキーワードは、例外オブジェクトがスローされ、指定、我々は、この例外オブジェクトに対処しなければならない
throwキーワードの作成の背後にあるのRuntimeExceptionまたはのRuntimeExceptionサブクラスオブジェクトは、我々はデフォルトに、対処することができないのJVM(印刷例外オブジェクト、プログラムを中断)プロセス
throwキーワードはの創造の背後にある例外をコンパイル(エラーコードを書く)、私たちはこの例外に対処しなければならない、またはスロー、どちらか試す...キャッチ
ランタイム例外の例を:NullPointerExceptionがヌルポインタ例外、ArrayIndexOutOfBoundsExceptionがの配列の添字範囲例外
(2)キーワードスロー:例外処理の最初の方法を、他の人に対処
役割:
内部メソッドが例外オブジェクトをスローする場合、我々は、この例外オブジェクトが対処しなければならない
スローキーワードオブジェクトの意志を使用して例外を処理することができます>割り込み処理-ステートメントの例外オブジェクトが呼び出し元にスローされるが、最終的にはJVMプロセスに対する治療の方法を(彼らが対処し、それらの治療を与えることはありません)を呼び出し
、使用するメソッド宣言で:フォーマットを使用して
修飾戻り値の型メソッド名(パラメータリスト)AAAExcepiton、BBBExcepiton ...スロー{
;スロー新しい新AAAExcepiton(「原因」)
スロー新しい新しいBBBExcepiton(原因を「);
...}
注:
1.キーワードは、メソッド宣言に書き込まれなければならないスロー
2.キーワードをスロー例外宣言されなければならないの後ろに例外または例外のサブクラス
つ以上の例外オブジェクトがスローされた場合の内部方法3.をして、再びスローも宣言しなければならない多くの例外を子親関係が存在する場合より多くの例外オブジェクトがスローされました、あまり直接ステートメントの親への異常な
4コール例外を投げる方法は、我々は、いずれかの宣言異常に対処する必要が使用し続けスロー 明のいずれか、JVMに最終的に治療の呼び出し元メソッドに投げて、...しようとキャッチし、独自の例外処理を
例外コードのショーを処理するための3つの方法:
(1)例外をスロー
//は、例外コードが示すスロー パブリック クラスExceptionDemo { 公共 静的 ボイドメイン(文字列[]引数)がスロー{にFileNotFoundExceptionを readFileの( "D:\\ c.txt" )。 } // ない"A.TXT"ファイル、それはFileNotFoundExceptionをスローした場合、指定されたファイルのパスを読み取り、方法を記述 パブリック 静的 ボイド readFileの(文字列のファイル名)スローにFileNotFoundException { IF(fileName.equals(「D :! \\ A .TXT「)){ スロー 新しい新規にFileNotFoundException(」ファイル伝送パスは「D:\\ A.TXT」ではありません)。 } } }
結果:
(2)のtry ...キャッチキャッチ例外
試す...キャッチ:例外処理の第2の実施形態では、例外は、それらの処理
フォーマット:
トライ{
可能例外コード
}キャッチ(例外がスローされた例外試行オブジェクトを受信するための変数を定義){
例外処理ロジック例外オブジェクトキャプチャー後、例外オブジェクトに対処する方法を
一般操作で、ログ例外意志情報
} ...
キャッチ(例外クラス名、変数名){}
注:
1.投げるかもしれない試みる複数の例外は、あなたが使用できるオブジェクトを複数のcatchをこれらの例外オブジェクト処理するために、
あなたは異常が、それは例外処理ロジックキャッチを実行しますが発生しようとした場合2.を、キャッチを終了しますロジックを処理し、...キャッチを試みた後にコードを実装していき
、ない例外試して、それは試しでコードを実行した後、処理ロジックキャッチに例外を実行しない場合は試してみる...キャッチ後のコードを実装し続けます
// のtry-コードがキャッチ例外にキャッチを実証 パブリック クラスTryCatchDemo { 公共の 静的な 無効メイン(文字列[] args)を{ 試み{ readFileの( "D:\\ c.txt" )。 } キャッチ(にFileNotFoundException E){ //は例外、例外オブジェクト印刷処理 のSystem.out.println(e)を、 } } // ない"A.TXT"ファイル、それはFileNotFoundExceptionをスローした場合、指定されたファイルのパスを読み取り、方法を記述 パブリック 静的 ボイド readFileの(文字列のファイル名)スローにFileNotFoundException { IF(fileName.equals(「D :! \\ A .TXT「)){ スロー 新しい新規にFileNotFoundException(」ファイル伝送パスは「D:\\ A.TXT」ではありません)。 } } }
結果:
注意:
:Throwableクラスは3つの例外処理方法を定義する
(1)文字列のgetMessage() このthrowobleの簡単な説明を返します。
(2)文字列のtoString() このメッセージの詳細throwoble文字列を返します。
(3)空のprintStackTrace() JVM印刷例外オブジェクトは、デフォルトでこの方法により、例外情報は、最も包括的である印刷
4.カスタム例外クラス:
(1)独自の例外クラスは、通常は例外で終了し、クラスは例外クラスで説明した
(2)独自の例外クラスをしなければならない例外またはRuntimeExceptionを継承する
カスタム例外クラスが例外というコンパイルされるように、場合:継承の例外を内部メソッドが例外コンパイルをスローし、あなたは例外を処理、またはスロー、またはしようとしなければならない...キャッチ
のRuntimeExceptionを継承:カスタム例外クラスは、仮想マシンの処理に処理なしの例外その実行、(割り込み処理であるので、 )
(3)コードは示しています。
パブリック クラス RegisterException 延び例外{ // 空の引数コンストラクタ追加 パブリック{)(RegisterExceptionを } // でコンストラクタ例外情報追加 // 我々は、すべての例外クラスは、例外情報を持つ親クラスのコンストラクタを呼び出します内部メソッドとコンストラクタの例外情報を持っているだろうことがわかったソースを表示します。異常情報を処理するために、親クラスを聞かせて 公衆RegisterException(文字メッセージ){ スーパー(メッセージ)。 } }