| 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 {
// Some code which does something with the Stream. May throw a
// Throwable.
threw = false; // No throwable thrown.
} finally {
// Close the stream.
// If an exception occurs, only rethrow it 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.Copyright © 2010-2013. All Rights Reserved.