、スローやスロー
ユーザー定義の例外とプログラムアプリケーション固有の例外、スロー頼ると投げ定義するためのステートメントをスローする必要があります。
違い:
1、の概念
- E1、E2、E3は、ちょうどこの方法は、これらの例外をスローすることがプログラムを教えて投げ、呼び出し側は、これらの例外に対処するための方法であってもよいし、これらの例外E1、E2、E3は、関数本体によって生成することができます。
- スローは明らかにこの例外をスローする場所です。
2、場所
- throw文は、生体内で使用されている、それは例外が文のin vivoでの処理の方法によってスローさを表します。
- その後、例外をスローし、それはメソッドの呼び出し元によって処理されたメソッドの宣言の後に声明をスローします。
3、人気のことわざ:
- あなたがその傾向を持っている可能性があることをスローします。
- それを投げると、それはあなたが本当になる傾向があることです。
フォーマット:
1.1例外文を投げている投げます。
構文:スロー(例外オブジェクト);
Eを投げます。
1.2は、この方法は、声明の中で例外をスローすることがスローされます。(メソッドステートメントで使用する場合、メソッドが例外をスローする場合がありますことを示します)
構文:[(修飾子)](戻り型)(メソッド名)([パラメータリスト])スロー(例外クラス)] ......} {
公共ボイドDOAは(INT A)Exception1、Exception3 {...}をスロー
例:
無効 DOAは(int型 A)スローIOExceptionが、{ しようと{ ...... } キャッチ(Exception1電子){ スローEと、 } キャッチ(Exception2電子){ System.out.println( "間違っています!" )。 } IF(!A = B) スロー 新しい新 Exception3( "カスタム例外" ); } // コードブロックは、三の異常、(Exception1、Exception2、Exception3)で生成することができます 。 // Exception1例外を生成した後スローされ、その後に対処するためのメソッドの呼び出し元で撮影し、場合。 // 例外がException2、自分の持つメソッドの契約を生成している場合(すなわちのSystem.out.println(「間違っています!」);)。したがって、この方法は)DOAを(無効、異常Exception2を捨てないであろうException1、スロー Exception3 Exception2内部にも書いていません。 // Exception3の例外は、例外はこのセグメント論理エラーでException3がスローされ、メソッドの特定の論理エラーは、プログラマが取引を行っているが、メソッドの呼び出し元は、この例外を処理する必要があります。
抜粋:https://www.cnblogs.com/jxldjsn/p/10444538.html
二、試してみて、キャッチ
tryおよびcatchキーワードは、例外をキャッチすることができます使用してください。
キャッチを試してみて、違いがスローされます。
- try-catch:例外の現在位置が処理されます
- スロー:アップ例外、無制限のスローアップを投げて、mainメソッドまで投げ、mainメソッドが解決するJVM仮想マシンに衝突します
あなたが解決しない場合、すなわち、例えば、三つのクラスには、3つのクラスの異常、第二のクラスを投げることができ、第二のクラスは、その後、最初のクラス解決するための最初のクラスをスローし続けることができtry-catchを使用して例外を解決するために==」(第三のクラスのメソッドが異常になります呼び出します)
(のtry-catch解決の例外を使用して)設定した例外を解決するためのクラスをスロー指定して、のtry-catchが直接例外を処理されることができ投げ対応
第三に、例外:
IllegalArgumentExceptionが:ショーは方法に違法または不正なパラメータを渡します