Java 7 ARM(Automatic Resource Management、自動リソース管理)

731 ワード

一つのtryブロックに複数の異常があると捕獲され、catchブロックのコードが醜くなり、余分なコードで異常を記録します。このため、Java 7の新しい特徴は、一つのcatchの中で複数の異常を捉えることができるということです。サンプルコードは以下の通りです。
catch(IOException | SQLException | Exception ex){
     logger.error(ex);
     throw new MyException(ex.getMessage());
}
ほとんどの場合、資源の閉鎖を忘れたり、資源の枯渇によって運行が異常になったりした場合、私たちはフィnally子文で資源を閉じるだけです。これらの異常は調整しにくいです。資源使用の各ステップに深く入り込んで、閉鎖されたかどうかを確認する必要があります。したがって、Java 7はtry-with-resourceで改善されました。tryサブルーチンでは、try-catchを実行した後、実行環境が自動的にリソースを閉じます。以下は、この態様の改善された例示的なコードである。
try (MyResource mr = new MyResource()) {
            System.out.println("MyResource created in try-with-resources");
        } catch (Exception e) {
            e.printStackTrace();
        }