使用はしてみてください - と - リソースとのマルチキャッチ

すべての1.まず、例外が処理される前に、我々は開発の話を、私たちは、例外を処理するためのtry-catch-最後に使用されます。

//使用のtry-catch-最終的に
公共
の静的 無効メイン(文字列[] args)を{ ファイルファイル = nullを FileReaderのFR = nullを試し{ ファイル = 新しいファイル( "D://abc.txt" ); FR = 新しいFileReaderの(ファイル); } キャッチ(にFileNotFoundException電子){ e.printStackTrace(); } 最後に{ 試みる{ fr.closeを(); } キャッチ(IOExceptionを電子){ e.printStackTrace(); } } }

私たちが見ることができ、チャート上のコードを、このアプローチは、コードがあまりにも複雑になる可能、より良いリソースをオフにする少し必要がある場合は、以上の3シャットダウンした場合、コードはより複雑になります。

この問題を解決し、将来を最適化するために2.私たちは一つ一つを導入され、ここで、新しいアプローチをJDK7。

(1)例外を処理しよう - と、リソースを使用して

パブリック 静的 ボイドメイン(文字列[]引数){ 

        試み(FileReaderのFR = 新しい FileReaderの( "D://abc.txt" ); 
            BufferedReaderのBR = 新しいBufferedReaderの(FR)){
             // 对文件的操作
        }
         キャッチ( FileNotFoundException E){ 
            e.printStackTrace(); 
        } 
        キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
        } 
    }

try-と-リソース使用状況の形式は次のとおりです。

試みは、{(リソースが自動的にこれらのリソースは、インターフェイスまたはAutoCloseable閉鎖可能インタフェースを実装しなければならないという条件で、シャットダウンされますがあります)

    // あなたの他のコードがある 
} キャッチ(例外をキャッチ){
     // 印刷例外情報を 
}   

例外を処理しよう - と、リソースを使用する場合(2)は、私たちは、あなたが例外をキャッチするために多くの時間を必要とするとき、コードが退屈になり、2つのキャッチキャッチ例外があることがわかりました

  この問題と最適化を解決するために、マルチキャッチを使用して、我々はそう。

公共の 静的な 無効メイン(文字列[] args)を{ 

        試み(FileReaderのFR = 新しい新しい FileReaderの( "D://abc.txt" ); 
            BufferedReaderのBR = 新しい新しいをBufferedReader(FR);){
             // ここでしか証明する
            IF新新を。ランダム()nextInt(10)== 0 ){
                 スロー 新しい新しいのAにClassNotFoundException(); 
            } 
        } 
        キャッチ(IOExceptionを| ClassNotFoundExceptionがE){//このキャッチが例外ベースの親子関係の内側に存在しないことに注意してください。サブ親関係が存在する場合、親は単にそれをキャプチャします。
            e.printStackTrace(); 
        } 
    }

 

おすすめ

転載: www.cnblogs.com/li666/p/12528874.html