public class TaggedIOException
extends org.apache.commons.io.IOExceptionWithCause
IOException decorator that adds a serializable tag to the
wrapped exception. Both the tag and the original exception can be used
to determine further processing when this exception is caught.| Constructor and Description |
|---|
TaggedIOException(IOException original,
Serializable tag)
Constructs a tagged wrapper for the given exception.
|
| Modifier and Type | Method and Description |
|---|---|
IOException |
getCause()
Returns the wrapped exception.
|
Serializable |
getTag()
Returns the serializable tag object.
|
static boolean |
isTaggedWith(Throwable throwable,
Object tag)
Checks whether the given throwable is tagged with the given tag.
|
static void |
throwCauseIfTaggedWith(Throwable throwable,
Object tag)
Throws the original
IOException if the given throwable is
a TaggedIOException decorator the given tag. |
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toStringpublic TaggedIOException(IOException original, Serializable tag)
original - the exception to be taggedtag - tag of this exceptionpublic IOException getCause()
Throwable.getCause() method is the narrower return type.public Serializable getTag()
public static boolean isTaggedWith(Throwable throwable, Object tag)
This check can only succeed if the throwable is a
TaggedIOException and the tag is Serializable, but
the argument types are intentionally more generic to make it easier
to use this method without type casts.
A typical use for this method is in a catch block to
determine how a caught exception should be handled:
Serializable tag = ...;
try {
...;
} catch (Throwable t) {
if (TaggedIOException.isTaggedWith(t, tag)) {
// special processing for tagged exception
} else {
// handling of other kinds of exceptions
}
}
throwable - The Throwable object to checktag - tag objecttrue if the throwable has the specified tag,
otherwise falsepublic static void throwCauseIfTaggedWith(Throwable throwable, Object tag) throws IOException
IOException if the given throwable is
a TaggedIOException decorator the given tag. Does nothing
if the given throwable is of a different type or if it is tagged
with some other tag.
This method is typically used in a catch block to
selectively rethrow tagged exceptions.
Serializable tag = ...;
try {
...;
} catch (Throwable t) {
TaggedIOException.throwCauseIfTagged(t, tag);
// handle other kinds of exceptions
}
throwable - an exceptiontag - tag objectIOException - original exception from the tagged decorator, if any