public class TaggedIOException extends 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)
Creates 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 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 anypublic Serializable getTag()
public IOException getCause()
Throwable.getCause() method is the narrower return type.Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.