public interface AutoCloseable
AutoCloseable
对象的
close()
方法称为自动退出
try
-with-resources块的对象已在资源规范标题时宣布。这种结构确保及时发布,避免资源枯竭的异常和可能发生的错误。
这是可能的,而事实上,对于一个基类实现autocloseable即使不是它的所有子类或实例将释放资源。代码必须完全一般性的操作,或当它是已知的,AutoCloseable
实例需要的资源释放,建议使用try
-with-resources结构。然而,当使用诸如Stream
同时支持I / O / O和非形式的设施,try
-with-resources块一般不必要时使用非/ O型。
void close() throws 异常
try
-with-resources声明。
虽然这个接口的方法声明抛出异常
,实施大力鼓励申报的close
方法的具体实现更具体的异常,或把不例外在所有如果关闭操作不能失败。
的情况下,关闭操作可能需要实施者注意。它被强烈建议放弃潜在的资源,并在内部标记的资源为封闭,之前抛出的异常。该方法被调用close
可能不止一次这样确保资源及时公布。此外,它减少了资源包时可能出现的问题,或由另一个资源包被另一个资源包。
这个接口的实现者也强烈建议没有关闭方法抛出InterruptedException。这种异常与一个线程的中断状态的相互作用,以及运行时的不当行为可能如果InterruptedException
是suppressed发生。更一般地,如果它将被抑制异常引起的问题,AutoCloseable.close
方法不应该扔。
值得注意的是,不同的close
Closeable
方法,这close
方法不需要幂等。换句话说,调用此方法close
不止一次可能有一些明显的副作用,不像Closeable.close
是需要有没有影响,如果多次调用。然而,这个接口的实现者应该使他们的close
方法幂等。
异常
-如果该资源不能关闭
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.