ハンズオン脳(10.28)

2019年11月2日第一に、異常:動作中のソフトウェアプログラムは、(例外)が表示されますいくつかの例外かもしれません。

       2.javaは、例外、プロセスを処理するためにオブジェクト指向の方法の使用です。

            例外をスロー:例外が発生した場合メソッドの実装では、この方法は、異常を表すオブジェクトを生成し、現在の実行経路を停止し、JREに提出された例外オブジェクト。

           キャプチャ例外:例外はJRE後に得られる、例外を処理するための適切なコードを見つけます。JREは、この方法は、あなたがこれまでに適切な例外処理コードを見つけるまで、バック例外を生成から始まる、コールスタックのメソッドを見てください。

        処理:試す{...}キャッチ{...}最後に{...}

        エラーは例外オブジェクトは、スロー以下のキャッチキャプチャ、例外処理を実行されて発生した場合、間違ったコードが発生する可能性が置かれてみてください。最後にかかわらず、例外は常に実行され、最終的に発生があるかどうかの、コードの「リハビリ」を置きます。何の適切な例外をハンドリング機構いない場合は、JVMは、アプリケーション全体を終了します。

第二に、異常なカテゴリー:

JDKは、多くの例外クラスを定義し、これらのクラスは、起こり得る異常事象の広範囲に対応し、すべての例外オブジェクトは、Throwableの派生クラスのインスタンスです。また、あなたはまた、独自の例外クラスを作成することができます。(問題を捕捉することができることを生じる)(典型的にはJVMプロセスによってシステムエラー)エラーと例外:すべての異常な根たjava.lang.Throwableは、Throwableのは、以下の2つのサブクラスを導出します。キャッチするか、再度スロー宣言する必要があります例外例外クラスから直接派生し;(2)実行時例外:(1)チェック例外:それがキャッチすることができます例外は、2つのカテゴリに分けることができるのRuntimeExceptionの例外クラスから派生します。いつでも、この例外オブジェクトを投げることができるthrow文を使用します。

第三に、多層例外がキャッチ

パッケージorg.yuan.Day3;

パブリック クラスCatchWho { 
     公共の 静的な 無効メイン(文字列[] args)を{ 
         しようと{ 
                 しようと{ 
                     スロー )(ArrayIndexOutOfBoundsExceptionがします。
                } 
                キャッチ(ArrayIndexOutOfBoundsExceptionが電子){
                       System.out.println(   "は、ArrayIndexOutOfBoundsException" + "/内层のtry-catchを" );
                }
 
            スロー 新しいはArithmeticExceptionを();
        } 
        キャッチ(はArithmeticException電子){
            System.out.println( "はArithmeticExceptionを発生しました" );
        } 
        キャッチ(ArrayIndexOutOfBoundsExceptionが電子){
           System.out.println(   "は、ArrayIndexOutOfBoundsException" + "/外层のtry-catchを" );
        } 
    } 
}

結果:

 

 

パッケージorg.yuan.Day3;

パブリック クラスCatchWho2 { 
     公共の 静的な 無効メイン(文字列[] args)を{ 
         しようと{
                 しようと{ 
                     スロー )(ArrayIndexOutOfBoundsExceptionがします。
                } 
                キャッチ(はArithmeticException電子){
                    System.out.println( "は、ArrayIndexOutOfBoundsException" + "/内层のtry-catchを" );
                }
            スロー 新しいはArithmeticExceptionを();
        } 
        キャッチ(はArithmeticException電子){
            System.out.println( "はArithmeticExceptionを発生しました" );
        } 
        キャッチ(ArrayIndexOutOfBoundsExceptionが電子){
            System.out.println( "は、ArrayIndexOutOfBoundsException" + "/外层のtry-catchを" );
        } 
    } 
}

結果:

 

 唯一の例外は別の例外をスローするために捕獲された後、スロー

パッケージorg.yuan.Day3;
パブリック クラスEmbededFinally {    
     公共 静的 ボイドメイン(文字列引数[]){
 
        int型の結果。
        してみてください{
            
            System.out.println( "レベル1で" );
             してみてください{
                System.out.println( "レベル2で" );
  // 結果= 100/0。  // レベル2
               
                 してみてください{
                   
                     System.out.println( "レベル3で" );
                      
                     結果 = 100/0。  // レベル3
                
                } 
                
                キャッチ(例外e){
                    
                    System.out.println( "レベル3:" + 。e.getClass()のtoString());
                
                }                
                最終的には{
                    
                    System.out.println( "レベル3ではついに" );
                
                }
                // 結果= 100/0。  // レベル2 
                }
             キャッチ(例外e){
                 System.out.println( "レベル2:" + 。e.getClass()のtoString());
             }
             最終的には{
                System.out.println( "レベル2ではついに" );
             }
            // 結果= 100/0。  // レベル1 
        }
        
        キャッチ(例外e){
            
            System.out.println( "レベル1:" + 。e.getClass()のtoString());
        
        }
        
        最終的には{
           
             System.out.println( "レベル1ではついに" );
        
        }
    
    }

}

結果:

 

 

最後にネストするとき、異なる位置にスローされた例外をスロー異なるレベルで、最終的に、ブロックの実行の別の順序で生じ得ます。

 

おすすめ

転載: www.cnblogs.com/tianwenjing123-456/p/11789124.html