Interface ThrowingAutoCloseable<E extends Exception>

  • All Superinterfaces:
    AutoCloseable
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface ThrowingAutoCloseable<E extends Exception>
    extends AutoCloseable
    Functional helper-interface to allow for use of closeable resources that don't implement AutoCloseable in a try-with-resources statement.

    This interface can be used with any object instance that doesn't implement AutoCloseable, but does have a close or similar method that needs to be called to free up resources. This functional interface is usable for any close method that throws a more specific exception than AutoCloseable defines. For methods that don't throw any exceptions, see @link{ExceptionLessAutoCloseable}.

    Example:

    CloseableResource resource = ... try (ThrowingAutoCloseable<IOException> eac = resource::close) { // Use resource } catch(IOException e) { // Handle exception }