@Beta public final class Closeables extends Object
Closeable
objects.Modifier and Type | Method and Description |
---|---|
static void |
close(Closeable closeable,
boolean swallowIOException)
Closes a
Closeable , with control over whether an IOException may be thrown. |
static void |
closeQuietly(Closeable closeable)
Equivalent to calling
close(closeable, true) , but with no IOException in the signature. |
public static void close(@Nullable Closeable closeable, boolean swallowIOException) throws IOException
Closeable
, with control over whether an IOException
may be thrown.
This is primarily useful in a finally block, where a thrown exception needs to be logged but
not propagated (otherwise the original exception will be lost).
If swallowIOException
is true then we never throw IOException
but merely log
it.
Example:
public void useStreamNicely() throws IOException {
SomeStream stream = new SomeStream("foo");
boolean threw = true;
try {
// ... code which does something with the stream ...
threw = false;
} finally {
// If an exception occurs, rethrow it only if threw==false:
Closeables.close(stream, threw);
}
}
closeable
- the Closeable
object to be closed, or null, in which case this method
does nothingswallowIOException
- if true, don't propagate IO exceptions thrown by the close
methodsIOException
- if swallowIOException
is false and close
throws an
IOException
.public static void closeQuietly(@Nullable Closeable closeable)
close(closeable, true)
, but with no IOException in the signature.closeable
- the Closeable
object to be closed, or null, in which case this method
does nothingCopyright © 2010-2013. All Rights Reserved.