Package org.apache.commons.io
Class TaggedIOException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
org.apache.commons.io.IOExceptionWithCause
org.apache.commons.io.TaggedIOException
- All Implemented Interfaces:
Serializable
An
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.- Since:
- 2.0
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTaggedIOException(IOException original, Serializable tag) Constructs a tagged wrapper for the given exception. -
Method Summary
Modifier and TypeMethodDescriptiongetCause()Returns the wrapped exception.getTag()Returns the serializable tag object.static booleanisTaggedWith(Throwable throwable, Object tag) Checks whether the given throwable is tagged with the given tag.static voidthrowCauseIfTaggedWith(Throwable throwable, Object tag) Throws the originalIOExceptionif the given throwable is aTaggedIOExceptiondecorator the given tag.Methods inherited from class java.lang.Throwable
addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Constructor Details
-
TaggedIOException
Constructs a tagged wrapper for the given exception.- Parameters:
original- the exception to be taggedtag- tag of this exception
-
-
Method Details
-
isTaggedWith
Checks whether the given throwable is tagged with the given tag.This check can only succeed if the throwable is a
TaggedIOExceptionand the tag isSerializable, 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
catchblock 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 } }- Parameters:
throwable- The Throwable object to checktag- tag object- Returns:
trueif the throwable has the specified tag, otherwisefalse
-
throwCauseIfTaggedWith
Throws the originalIOExceptionif the given throwable is aTaggedIOExceptiondecorator 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
catchblock to selectively rethrow tagged exceptions.Serializable tag = ...; try { ...; } catch (Throwable t) { TaggedIOException.throwCauseIfTagged(t, tag); // handle other kinds of exceptions }- Parameters:
throwable- an exceptiontag- tag object- Throws:
IOException- original exception from the tagged decorator, if any
-
getCause
Returns the wrapped exception. The only difference to the overriddenThrowable.getCause()method is the narrower return type. -
getTag
Returns the serializable tag object.- Returns:
- tag object
-