例外(例外):起こる正常に動作していません。
オリジナル例外処理:
IF(条件) { アプローチ1 アプローチ2つの アプローチ3 } (条件)場合 、{ アプローチ4 アプローチ5が 6に近づきます }
クラスアプローチ { アプローチ1() { 実施例1 } アプローチ2() { 実施例2 } } IF(間違った) { )新しいアプローチ1(スロー;この方法は、問題の名前、情報、時間を含んでいてもよいです場所。 }
例外クラスと呼ばれる説明むらクラス、。プロセスコードと例外コード分離。
JAVAは、オブジェクト指向の考え方を通じて、問題はカプセル化されたオブジェクトになります異常です。これは、例外クラスで記述されています。別の問題は、異なるクラスが記載されています。その多くがあるようですが、どのくらいの問題の意味します。
第二に、異常なシステム
問題の多くは、異常なシステムの形成に、多くは、それは一般的に策定されるクラスの手段を説明しました。最後の障害は、2つのカテゴリに分類します:
Throwableを(親):問題、あなたは、発信者のハンドルを聞かせて、スローする必要があります。これは、使い捨ての持つそのThrowableのサブクラスで、システムの嘘の特徴。
二つのキーワードの実現を投げることができます:スロー、スローを
1.一般的には扱われません。エラー(エラー)
特徴:それはスローJVM(Java仮想マシン)による、問題の深刻さです。この問題が発生し、処理は、一般に、直接プログラムを修正対象とされていません。
2.処理することができます。例外(異常)
特長:拡張サブクラスは強い親クラス名を読み接尾辞としてあります。
三つの例外 - 原理と例外オブジェクトスロースロー
静的な無効メインパブリック(文字列[]引数) { ブロック例外スロー新しいメソッド(); } キーワードとして投げ、具体的操作のための例外がスローされます。 中国の異常情報は、(例えば)に定義される: スロー異常の新しい新しい方法(中国書き込みがOKにプロンプトが表示された文字列の文字列型、中に配置することができます異常の一般的な方法を)。
図から分かるように、異常な、ダイレクトコールはメソッドが例外をスローする基礎となる例外をスローしますが、これは一番下に行われ、我々はそれを見ることはできません。
これは、Java仮想マシンの例外処理メカニズムが解決例外のために、そのような位置などの情報、各種のを報告します異常であります。
第四に、例外 - スローカスタム例外クラスが例外をスロー&
カスタムの異常:既存の例外JAVAの束が全く我々の必要性を与えられていない、この時間をカスタマイズすることができます。しかし、このクラスはExceptionクラスを継承しなければなりません。
これは、カスタム例外であり、継承例外クラスに必要 クラスのデモは、例外延び { 異常コンストラクタまあ デモ() { } デモ(INT A) { スーパー(A)を、これが書かれた親クラスThrowableの方法で、継承された例外親クラスのThrowableである } デモ(列B) { スーパー(B)は; } } クラスDEMO1 { 公共の静的な無効メイン(文字列[]引数)をスローすると、これは異常で宣言されたメソッドにスローされることがデモノート、ダイレクトライトバックをスローライン上の { スロー新しい新しいデモ(ここプロンプトあなたの中国の異常を書きます); } }
異常V. - 異常な差異&スローと異常なコンパイル時間を検出スローと実行の違い
:2つの方法で例外システム1 Aコンパイル時の異常が検出された(スロー)。すべてのサブクラスのRuntimeExceptionのサブクラスに加えて。このような問題は、治療を標的とすることができます。
例外(スロー)2.ランタイム。RuntimeException及びそのサブクラスの例外サブクラス。この問題は、一般的に、プログラムが停止を余儀なくされ、実行時に呼び出されたときにそのことを、コンパイラによって直接処理されていません。
第六に、異常 - 異常なキャッチのtry-catch
例外処理フォームキャプチャ:特定のフォーマット:
トライトライは { 異常コードを検出する必要があるが 、すべての地獄を入れしようとしないテストを必要としません入れていない } キャッチ(例外クラス変数を) -この変数は、現在の例外の特別なターゲットを受け取る発生した { ハンドル問題が解決するコードをプログラムが継続 } 最後にファイナライズ { 意志コードが実行しました }
しようとする試み { 異常コード検出される } キャッチ(例外クラス変数) { 処理するコードを } キャッチ(例外クラス変数) { コード処理する } 最後にファイナライズ { 意志コードが実行 }
場合は、マルチキャッチキャッチ(例外e)の必要性最終的に置くために、またはハングします、親例外クラスはすべての例外を受け取ることができるので、それを配置する必要がありますので、他の余分の上に置く必要があります最終キャッチ。
八の例外 - 例外処理の原則
例外は、いくつかの共通の問題は何とかなっているJAVA、およびメイク使用に十分な問題です。
唯一の独自のプロジェクト内の個々の問題が現れ、JAVAはそのような問題がなければ、それは問題自体を記述する必要があります。
例外が必要な検出方法の中にスローされた場合は1、その後、この方法は、そうでない場合はコンパイルに失敗し、特に明記しない方法でのtry-catchでキャッチしていなければなりません。
2.あなたがそうでなければ、コンパイルに失敗し、異常な機能の声明、またはのtry-catchを呼び出すか、スローする場合。
3.キャッチ、あなたが投げますか?コンテンツは、発信者に伝えるスローで、呼び出し側が解決しなければ、キャッチして解決することができます解決することはできません。
4.関数が例外の数をスローした場合、その後の呼び出しに対応するキャッチより標的治療がなければなりません。
ナインは、異常な - 最後のブロック
最終的にはコードが実行されますが、一つだけの場合は、最終的には実行されません。
試し { 検出コード } キャッチ { リターンは、全体のプロセスを終了しますが、最終的にはまだ行きました。 でSystem.exit(0); Java仮想マシンを終了し、この場合のみは、最終的には実行されません。 } 最後に閉じた一般的に使用される(放出)リソース { 間VM出口アウターケースに関係なく、騒音の、行われます。 } のSystem.out.println(「書き込みリターンにキャッチは、コード全体は直接法であるから、正確には、外部最終的に実行されません」)。
1.try-キャッチついに共通の組み合わせ
2.tryキャッチは、(複数のキャッチをすることができます)、あなたは最終的にはできません(閉じた状態)リソースを解放する必要がない、最終的にはしませんでした。
3.try - 最後に、何のキャッチがない、何が何の治療をキャッチしていないので、次の方法では、文を必要としませんがスローされます。異常が直接キャッチを扱うことはできませんが、リソースは、この組み合わせを使用し、クローズする必要があります。
テン、異例の注意事項
1.例外の親クラスがスローされた場合、サブクラスは、親クラスのメソッドをオーバーライドする場合は、この方法は、例外サブクラスまたは親クラスのサブクラスの例外をスローすることができます。
2.親クラスは複数の例外をスローした場合、サブクラスは親クラスの例外のサブセットのみを投げることができます。----サブクラスは親クラスが唯一の例外の親クラスまたはサブクラスまたはサブセットを投げることができるよりも優先されます。親のメソッドが例外をスローしない場合は、サブクラスのカバーは捨てないでなければならないとき、あなただけ試すことができます。
一般的な異常:
一般的なサブクラスのエラークラス:
一般的なサブクラスの例外クラス:
共通のサブカテゴリーののRuntimeExceptionクラス: