まず、例外:
1:誤った分類
1)Error:エラー(制御不能)は、一般に、ブルースクリーン、メモリオーバーフロー、JVMの動作環境に問題があるとして、異常システム、を指します。
2)例外:例外は、プログラマはエラーを解決するためにプログラムを書くことができ、制御可能です。
3)親クラスの両方がThrowableをある;
2:例外を制御:
例外:すべての例外の親クラスであり、以下に誘導することができる多くのサブタイプ。
3:例外処理メカニズム。
プログラミングするとき、コードの一部は、いくつかの例外であってもよいです。我々は、このためにすべき
1)例外処理。それに対処するには?
構文は次のとおりである: -溶液
試み{
捕獲スニペット異常情報が表示され、例外オブジェクト//としてパッケージ化することができる
今の例外のtry {}ブロックは、中に配置
キャッチ(例外の種類の宣言} -キャプチャへの参照を例外オブジェクト){
//ハンドル例外
}最後に{
/ *異常が実行されるコードのこの部分で発生するかどうかを試します。
これは、一般的に閉鎖し、操作を解除するために使用されています。
文が返され実行で発生し、最終的に試みる
* /
}
プロセス2):私たちは、例外をブロックします} {試みに発生する可能性があり、
①jvmは、コードをチェック} {しようとする
異常がある場合、 JVM対応する例外オブジェクトに例外情報は意志、
およびその後キャッチ(に転送){}コードブロックを処理し、{}内のビジネスロジックを実行します。
最後に、最終的にはコードモジュールを実行します。
{}②異常が発生していない場合は、最後に、最終的に、論理モジュールを試みます。
。4:キャッチブロック:
番号①:一つ以上有していてもよい
②実行順序:同じレベルで使用することができる底catchブロック例外タイプへ戻ると、
親子関係例外の種類が複数ある場合、次いで異常な子は、まず親の例外を書く、書くべき。
、例外のサブタイプを処理する前に、親タイプのハンドルの例外を(父は最初の例外を書くことと、コンパイラは渡しません)。
5:最後にブロック:
①finally実行される異常コードブロック、最終的な実装は存在しません。
②一般的に一時ファイルを削除し、特定の操作をシャットダウンするために使用されていない。
③関係なく、プログラムはfinallyブロック実行し、リターンを実行し、キーワードを返したときに例外を試すかどうか
6:スロー:スローオブジェクトを。
コンセプト:時々 、キャプチャプログラムの例外は、catchブロックを処理する必要はありません。
これは、呼び出し元(呼び出し側でこのメソッドを呼び出す人)に投げ、アウトスローされます
直接例外を処理する最善の主、に対処するための呼び出し元に(キャッチ/試す必要があります)。
7:スロー:
あなたがメソッドを定義するときは、スローされる例外オブジェクトの型を宣言する必要があります
スロー:処理する異常型宣言で通知を呼び出し、メソッド宣言で定義された例外タイプをスローします。
スロー:スローオブジェクト、スローを呼び出し側(メソッド)に、呼び出し側プロセスのようにします。
スローに異常がある場合は、あなたが実行することはできませんスロー
スローは、コンパイル時の例外がある場合は、使用する必要がありますスロー
新しい新しい例外オブジェクトを投げる:
(新しい新しいNullPointerExceptionがスロー)。
8:異常なカテゴリー:
①例外チェック(コンパイル時異常)を
REG:IO異常
②非チェック例外(ランタイム例外)
REG:
NullPointerExceptionが//ヌル・ポインタ例外
は、ArrayIndexOutOfBoundsException //配列インデックス境界例外
StringIndexOutOfBoundsExceptionを//文字列インデックスクロスボーダーの範囲を超えて
のClassCastException //クラスキャスト例外
NumberFormatExceptionが//デジタル異常
IllegalArgumentsException //不正な引数の例外
ランタイム例外としてではないのClassNotFoundExceptionに
投げるのコンパイラは実行を無視するため、実行時に例外スローオブジェクトは、メソッドは、文を必要としません例外。
コンパイラが例外をスローするときは、このタイプのメソッドでオブジェクトをスロー宣言する必要があります。
9:親クラス例外ステートメントの方法、宣言サブクラスがメソッドをオーバーライドしないことができるが宣言されてもよい;
親クラス宣言方法は、異常でない、異常サブクラスを宣言しない;
10:カスタム例外を。唯一のシステムはコンストラクタを提供することができ、例外を継承する必要があります。
第二に、サブクラスは親クラスの継承
:継承されたメソッドをオーバーライドする場合、親クラスの例外を宣言した場合、サブクラス
1)方法サブクラスは、例外を宣言しなくてもよい;
2)親クラス内で宣言することができる;
3)例外サブタイプは、親プロセスの異常を宣言することができる;
*例外のスーパータイプの親クラスを宣言することはできません
例:公共ダブル距離()例外{スロー
//ブロック
}
なし親クラスの例外文、サブ場合4)クラスメソッドは、例外を宣言することはできません