[第27章]異常な捕捉および処理
A.は、異常なプログラムの影響を理解します
例外:例外は中断命令ストリームにつながるプログラムを指します。
例外があるプログラムが発生すると、プログラムは、確立された手順に従って完了されず、異常発生時に終了します。
まだすることができ、通常の非致命的なエラーの完了後にプログラムを確保するために、私たちは完全な例外処理メカニズムを持っている必要があります。
II。例外処理
あなたが例外を処理したい場合はJAVAの中で、あなたが使用することができます。基本的な処理構造は以下のようである、キャッチ、最終的にこれらのキーワードを、試してみてください。
/ ** * 試し{ //ステートメントかもしれ異常 } [キャッチ(例外文の例外タイプ){ //例外処理 } [キャッチ(例外文の例外タイプ){ //例外処理 } [キャッチ(例外の例外タイプの文) { //例外処理 } ...] [最後に{ //は関係なく、例外が存在するか否かの実行される。 }] ** * /
この形式の組み合わせを使用することができます:キャッチ...してみてください、キャッチ...してみてください...ついに、ついに...してみてください。
例:例外処理:
パブリック クラスEnumo { 公共 静的 ボイドメイン(文字列引数[]){ するSystem.out.println( "プログラムの実行を開始" ); 試み{ するSystem.out.println( "数学:" +(10/0 )); } キャッチ(はArithmeticException E){ System.out.printlnは(E); } のSystem.out.println( "プログラムを終了します" ); } }
次のように出力されます。
プログラムの実行を開始し java.lang.ArithmeticExceptionを: / ZEROによって 完成実行
それは完全な例外クラスの情報を印刷する場合は、この時点では、()メソッドの取り扱いのprintStackTrace例外を提供するために必要とされます
ウォッチ:
パブリック クラスEnumo { 公共 静的 ボイドメイン(文字列引数[]){ するSystem.out.println( "プログラムの実行を開始" ); 試み{ するSystem.out.println( "数学:" +(10/0 )); } キャッチ(はArithmeticException E){ e.printStackTrace(); } のSystem.out.println( "プログラムが終了します" ); } }
このとき、出力は次のようになります。
プログラムの実行を開始し java.lang.ArithmeticExceptionを: / ZEROによって Example.Enumo.main AT(Enumo.java: 45 ) プログラムが終了します
例外処理には、それは関係なく実行される異常があるか否かの、例外処理のための出口を示し、最後に、ブロックの最後に追加されてもよいです。
パブリック クラスEnumo { 公共 静的 ボイドメイン(文字列引数[]){ するSystem.out.println( "プログラムの実行を開始" ); 試み{ するSystem.out.println( "数学:" +(10/0 )); } キャッチ(はArithmeticException E){ e.printStackTrace(); } 最後に{ (のSystem.out.println "かかわらず例外処理プログラムかどうか、番組が続くの[F]" ); } のSystem.out.printlnは( "プログラムを終了します" ); } }
でも例外処理ステートメントを使用している場合、正しく異常捉えていない場合、プログラムは(最終的にはまだ実行)中断につながります。
複数の例外を処理3:
何度もプログラムは複数の例外、複数のcatch異常のキャプチャを生成します。
パブリック クラスEnumo { 公共 静的 ボイドメイン(文字列引数[]){ するSystem.out.println( "プログラムの実行を開始" ); 試みは{ int型 X Integer.parseInt =(引数を[0 ]); INT Yは、(Integer.parseIntを= [1引数]); のSystem.out.println( "数学:" +(X / Y)); } キャッチ(はArithmeticException E){ e.printStackTrace(); } 最後に{ するSystem.out.println(「[F ]にかかわらず、プログラムを例外処理かどうか、プログラム」は、実行を継続する) } のSystem.out.println( "プログラムを終了します" ); } }
例えば、上記のプログラムは、3つの異常があるでしょう。
1.場合、プログラムの実行[ない]未処理の入力の初期化パラメータ(javaJavaDemo):java.lang.ArrayIndexOutOfBoundsException
java.lang.NumberFormatError:未処理2. [プログラム]は入力数字、文字(ジャワJavaDemo AB)ではありません
3処理された】被除数入力が0であります
我々の開発者はすでに明確に何の異常を知っている場合は、それがどのように使用され、例外処理は、なぜいくつかの判決文を書きません。