若是一个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(); }