@Override
		public void close() throws E {
			_release.accept(get());
		}
Opens a kind of {@code try-catch} with resources block. The difference
is, that the resources, registered with the
{@link Resources#use(Object, ThrowingConsumer)} method, are only closed
in the case of an error. If the <em>value</em> could be created, the
caller is responsible for closing the opened <em>resources</em> by
calling the {@link Value#close()} method.
{@snippet lang = "java":
final Value<Stream<Object>, IOException> result = new Value<>(resources -> {
    final var fin = resources.use(new FileInputStream(file.toFile()), Closeable::close);
    final var bin = resources.use(new BufferedInputStream(fin), Closeable::close);
    final var oin = resources.use(new ObjectInputStream(bin), Closeable::close);

    return Stream.generate(() -> readNextObject(oin))
        .takeWhile(Objects::nonNull);
});

try (result) {
    result.get().forEach(System.out::println);
}
}

@see Resources

@param builder the builder method
@param <BE> the exception type which might be thrown while building
            the value
@throws BE in the case of an error. If this exception is thrown, all
        already <em>registered</em> resources are closed.
@throws NullPointerException if the given {@code builder} is
        {@code null}
jenetics/src/main/java/io/jenetics/internal/util/Lifecycle.java