Java 7 ARM(Automatic Resource Management,自動資源管理)

若是一個try塊中有多個異常要被捕獲,catch塊中的代碼會變醜陋的同時還要用多餘的代碼來記錄異常。有鑑於此,Java 7的一個新特徵是:一個catch子句中能夠捕獲多個異常。示例代碼以下:spa

catch(IOException | SQLException | Exception ex){
     logger.error(ex);
     throw new MyException(ex.getMessage());
}

大多數狀況下,當忘記關閉資源或因資源耗盡出現運行時異常時,咱們只是用finally子句來關閉資源。這些異常很難調試,咱們須要深刻到資源使用 的每一步來肯定是否已關閉。所以,Java 7用try-with-resources進行了改進:在try子句中能建立一個資源對象,當程序的執行完try-catch以後,運行環境自動關閉資 源。下面是這方面改進的示例代碼:調試

try (MyResource mr = new MyResource()) {
            System.out.println("MyResource created in try-with-resources");
        } catch (Exception e) {
            e.printStackTrace();
        }
相關文章
相關標籤/搜索