31例外例外処理

 

/ *
スレッド「メイン」java.lang.ArithmeticExceptionで*例外:/ ZEROによって
com.itheima_01.ExceptionDemo.main(ExceptionDemo.java:5)AT
ために容易にするので、私たちは、多くの場合、いくつかのマイナーな問題、コードを書きます我々は、Javaの例外が私たちのためのメカニズムを提供し、これらの問題に対処します

例外は、間違った種類、原因と場所が含まれています

例外:我々のコードやランタイムをコンパイルするとき、通常、エラーが発生していません

異常なアーキテクチャ:
Throwableを(トップレベル)
エラー:深刻な問題に対処することはできません発生する
問題を処理することができ:例外

コンピュータが壊れている:
システム中毒:することができ、システムを再インストール
悪いマザーボード:新品
*
* /

 

 

/ *
* 例外処理:
* 1.キャプチャ処理
* try文キャッチ...
*
*試し{
*可能なコードの問題が発生します。
*}キャッチ(はArithmeticException AE){
*例外処理;
*}

* 2. スローに
*我々は例外、または対処できないことを処理したくない場合は、我々は例外を処理するメソッドを呼び出して例外をスローするように選択することができます
*使用キーワードはスロー例外をスローするメソッドの宣言で

*
:*の...キャッチ実行順序試してみてください
*まず、try文
は珍しい、異常な以下のコードを直接実行されていない場合、catch文、キャッチ後の声明、全体試しに飛び込む...キャッチが終了*を
*あなたがない場合珍しい文が試して実行された後、最後に直接キャッチ...してみてください、catch文が実行されません
*
*例外を処理するJVMの方法:
* 我々は珍しい対処していない場合は、JVMは、私たちが対処するのに役立ちます、彼は希望珍しいタイプそこに、コマンドラインに表示されませんので、
*とも手続きを終了するために、後者は例外コードを実行されません
* /

 

複数の例外に対処する方法*:
*のtry ... catch文を複数使用することができます
*試してみて、キャッチを複数使用
*
キャッチのうち順序は*:
*親子間のキャッチを複数持っていること
*同じレベルを間にはシーケンス関係は存在しない
*は、サブ親がある場合は、親クラスが異常の背後に配置されなければならない(if..elseと同様if..else。)
*

 

* Aは最終的に:...キャッチ併用を試し、そのようなリソースの解放のために仕事を終えて、関係なく、試しの... catch文が実行され、最終的にコードが実行されます
*
後に例外、* FileWrite関数の書き込みデータをファイルに書き込むためには、終了する必要データを正しく書き込むことができます前に、finally節の例外その後、書き込み時間近い方法ならば、終了します
*
*試し{
*可能なコードの問題が発生します。
*
*}キャッチ(例外オブジェクト){
*例外処理;
*} {遂に
*解放されたリソース;
*ゴミ;
*}
*

 

パブリック クラス例外处理の方式{
     公共の 静的な 無効メイン(文字列[] args)を/ * 例外がスローされます* / {
        しようと{
           文字列s = nullを
           System.out.println( 1 )。
           System.out.println(s.startsWith( "AA" ));
           System.out.println( 2); // 現在の顔が異常を捕捉しようとすると、出力2は、後で実行されない 
       } キャッチ(例外E){
           System.out.println(「ヌルポインタ」)。
           System.out.println( 3 )。
       }

       / * 関数(); * /
    }

    / * パブリック静的ボイド関数()は、{例外をスロー
        FileWriter FW =新しいてFileWriter( "B.TXT");

    } * / 
}

 

輸出

 

パッケージday31_exception。

インポートのjava.lang.Exception;

/ *
 *複数の例外に対処する方法:
 *あなたがより使い... catch文を試すことができます
 *試みを使用し、より多くのキャッチ
 *
 *キャッチ間の配列の複数:
 親クラスは、キャッチ、複数の間のサブを持つことができます*
 *オーダーレベルのグレードとの関係はありません
 サブ親がある場合*、親クラスは、異常の背後に配置されなければならない(類似if..elseのif..else。)
 *
 *
 * / 
公共の クラス複数の例外{キャッチの実行順序
     のパブリック 静的な 無効メイン(文字列[] args)を{
        試み{
           文字列s = nullを//            するSystem.out.println(s.length());

           // int型[] ARR =新しいINT [5]。
           // のSystem.out.println(ARR [8])。

           System.out.println( 2/0 )。
       } / * キャッチ(例外e){
           System.out.println(「異常」)。
       } * / キャッチ(ArrayIndexOutOfBoundsExceptionが電子){
           System.out.println(「出現配列の境界」)。
       } キャッチ(NullPointerExceptionが電子){
           System.out.println(「ヌルポインタ」)。
       } キャッチ(例外e){
           System.out.println(「異常」)。
       }
    }
}

 

輸出

 

おすすめ

転載: www.cnblogs.com/longesang/p/11290525.html