Tag: try-with-resources

  1. try-with-resources

    本文基于JDK 1.8.0_45 在JDK7中提供了一个新的特性:try-with-resources,该特性大大的降低了资源操作时的资源关闭相关的代码,原来的写法如下所示: InputStream stream = new FileInputStream("file.txt"); try { // do something } finally { stream.close(); } 当资源实现了AutoCloseable接口时,新写法如下所示: try (InputStream stream = new FileInputStream("file.txt")) { // do something } 在代码块执行完毕之后会自动调用resource的close方法关闭资源,再也不需要因为忘记关闭资源而导致资源泄露之类的问题了。 在实现该接口时有以下几点最佳实践: 建议在实现的时候抛出具体的异常,如果肯定没有异常发生则不要抛出异常; 如果关闭失败建议放弃继续尝试关闭底层的资源,而只是将其标志为关闭并抛出异常; 建议不要抛出InterruptedException异常以避免潜在的问题; 建议实现为幂等的,以避免多次调用出现问题;…

    on resource java JDK8 try-with-resources