|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.directory.shared.ldap.util.ExceptionUtils
Provides utilities for manipulating and examining Throwable
objects.
Constructor Summary | |
ExceptionUtils()
Public constructor allows an instance of ExceptionUtils to
be created, although that is not normally necessary. |
Method Summary | |
static void |
addCauseMethodName(java.lang.String methodName)
Adds to the list of method names used in the search for Throwable objects. |
static java.lang.Throwable |
getCause(java.lang.Throwable throwable)
Introspects the Throwable to obtain the cause. |
static java.lang.Throwable |
getCause(java.lang.Throwable throwable,
java.lang.String[] methodNames)
Introspects the Throwable to obtain the cause. |
static java.lang.String |
getFullStackTrace(java.lang.Throwable throwable)
A way to get the entire nested stack-trace of an throwable. |
static java.lang.Throwable |
getRootCause(java.lang.Throwable throwable)
Introspects the Throwable to obtain the root cause. |
static java.lang.String[] |
getRootCauseStackTrace(java.lang.Throwable throwable)
Creates a compact stack trace for the root cause of the supplied Throwable . |
static java.lang.String[] |
getStackFrames(java.lang.Throwable throwable)
Captures the stack trace associated with the specified Throwable object, decomposing it into a list of stack
frames. |
static java.lang.String |
getStackTrace(java.lang.Throwable throwable)
Gets the stack trace from a Throwable as a String. |
static int |
getThrowableCount(java.lang.Throwable throwable)
Counts the number of Throwable objects in the exception
chain. |
static java.lang.Throwable[] |
getThrowables(java.lang.Throwable throwable)
Returns the list of Throwable objects in the exception
chain. |
static int |
indexOfThrowable(java.lang.Throwable throwable,
java.lang.Class type)
Returns the (zero based) index of the first Throwable that
matches the specified type in the exception chain. |
static int |
indexOfThrowable(java.lang.Throwable throwable,
java.lang.Class type,
int fromIndex)
Returns the (zero based) index of the first Throwable that
matches the specified type in the exception chain from a specified index. |
static boolean |
isNestedThrowable(java.lang.Throwable throwable)
Checks whether this Throwable class can store a cause. |
static boolean |
isThrowableNested()
Checks if the Throwable class has a getCause method. |
static void |
printRootCauseStackTrace(java.lang.Throwable throwable)
Prints a compact stack trace for the root cause of a throwable to System.err . |
static void |
printRootCauseStackTrace(java.lang.Throwable throwable,
java.io.PrintStream stream)
Prints a compact stack trace for the root cause of a throwable. |
static void |
printRootCauseStackTrace(java.lang.Throwable throwable,
java.io.PrintWriter writer)
Prints a compact stack trace for the root cause of a throwable. |
static void |
removeCommonFrames(java.util.List causeFrames,
java.util.List wrapperFrames)
Removes common frames from the cause trace given the two stack traces. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ExceptionUtils()
Public constructor allows an instance of ExceptionUtils
to
be created, although that is not normally necessary.
Method Detail |
public static void addCauseMethodName(java.lang.String methodName)
Adds to the list of method names used in the search for
Throwable
objects.
methodName
- the methodName to add to the list, null
and
empty strings are ignoredpublic static java.lang.Throwable getCause(java.lang.Throwable throwable)
Introspects the Throwable
to obtain the cause.
The method searches for methods with specific names that return a
Throwable
object. This will pick up most wrapping
exceptions, including those from JDK 1.4, and The method names can be
added to using addCauseMethodName(String)
.
The default list searched for are:
getCause()
getNextException()
getTargetException()
getException()
getSourceException()
getRootCause()
getCausedByException()
getNested()
In the absence of any such method, the object is inspected for a
detail
field assignable to a Throwable
.
If none of the above is found, returns null
.
throwable
- the throwable to introspect for a cause, may be null
Throwable
, null
if none found or null throwable inputpublic static java.lang.Throwable getCause(java.lang.Throwable throwable, java.lang.String[] methodNames)
Introspects the Throwable
to obtain the cause.
A null
set of method names means use the default set. A
null
in the set of method names will be ignored.
throwable
- the throwable to introspect for a cause, may be nullmethodNames
- the method names, null treated as default set
Throwable
, null
if none found or null throwable inputpublic static java.lang.Throwable getRootCause(java.lang.Throwable throwable)
Introspects the Throwable
to obtain the root cause.
This method walks through the exception chain to the last element, "root"
of the tree, using getCause(Throwable)
, and returns that
exception.
throwable
- the throwable to get the root cause for, may be null
Throwable
,
null
if none found or null throwable inputpublic static boolean isThrowableNested()
Checks if the Throwable class has a getCause
method.
This is true for JDK 1.4 and above.
public static boolean isNestedThrowable(java.lang.Throwable throwable)
Checks whether this Throwable
class can store a cause.
This method does not check whether it actually does store a cause.
throwable
- the Throwable
to examine, may be null
true
if nested otherwise
false
public static int getThrowableCount(java.lang.Throwable throwable)
Counts the number of Throwable
objects in the exception
chain.
A throwable without cause will return 1
. A throwable with
one cause will return 2
and so on. A null
throwable will return 0
.
throwable
- the throwable to inspect, may be null
public static java.lang.Throwable[] getThrowables(java.lang.Throwable throwable)
Returns the list of Throwable
objects in the exception
chain.
A throwable without cause will return an array containing one element -
the input throwable. A throwable with one cause will return an array
containing two elements. - the input throwable and the cause throwable. A
null
throwable will return an array size zero.
throwable
- the throwable to inspect, may be null
public static int indexOfThrowable(java.lang.Throwable throwable, java.lang.Class type)
Returns the (zero based) index of the first Throwable
that
matches the specified type in the exception chain.
A null
throwable returns -1
. A
null
type returns -1
. No match in the
chain returns -1
.
throwable
- the throwable to inspect, may be nulltype
- the type to search for
public static int indexOfThrowable(java.lang.Throwable throwable, java.lang.Class type, int fromIndex)
Returns the (zero based) index of the first Throwable
that
matches the specified type in the exception chain from a specified index.
A null
throwable returns -1
. A
null
type returns -1
. No match in the
chain returns -1
. A negative start index is treated as
zero. A start index greater than the number of throwables returns
-1
.
throwable
- the throwable to inspect, may be nulltype
- the type to search forfromIndex
- the (zero based) index of the starting position, negative
treated as zero, larger than chain size returns -1
public static void printRootCauseStackTrace(java.lang.Throwable throwable)
Prints a compact stack trace for the root cause of a throwable to
System.err
.
The compact stack trace starts with the root cause and prints stack frames up to the place where it was caught and wrapped. Then it prints the wrapped exception and continues with stack frames until the wrapper exception is caught and wrapped again, etc.
The method is equivalent to printStackTrace
for throwables
that don't have nested causes.
throwable
- the throwable to outputpublic static void printRootCauseStackTrace(java.lang.Throwable throwable, java.io.PrintStream stream)
Prints a compact stack trace for the root cause of a throwable.
The compact stack trace starts with the root cause and prints stack frames up to the place where it was caught and wrapped. Then it prints the wrapped exception and continues with stack frames until the wrapper exception is caught and wrapped again, etc.
The method is equivalent to printStackTrace
for throwables
that don't have nested causes.
throwable
- the throwable to output, may be nullstream
- the stream to output to, may not be null
java.lang.IllegalArgumentException
- if the stream is null
public static void printRootCauseStackTrace(java.lang.Throwable throwable, java.io.PrintWriter writer)
Prints a compact stack trace for the root cause of a throwable.
The compact stack trace starts with the root cause and prints stack frames up to the place where it was caught and wrapped. Then it prints the wrapped exception and continues with stack frames until the wrapper exception is caught and wrapped again, etc.
The method is equivalent to printStackTrace
for throwables
that don't have nested causes.
throwable
- the throwable to output, may be nullwriter
- the writer to output to, may not be null
java.lang.IllegalArgumentException
- if the writer is null
public static java.lang.String[] getRootCauseStackTrace(java.lang.Throwable throwable)
Creates a compact stack trace for the root cause of the supplied
Throwable
.
throwable
- the throwable to examine, may be null
public static void removeCommonFrames(java.util.List causeFrames, java.util.List wrapperFrames)
Removes common frames from the cause trace given the two stack traces.
causeFrames
- stack trace of a cause throwablewrapperFrames
- stack trace of a wrapper throwable
java.lang.IllegalArgumentException
- if either argument is nullpublic static java.lang.String getStackTrace(java.lang.Throwable throwable)
Gets the stack trace from a Throwable as a String.
throwable
- the Throwable
to be examined
printStackTrace(PrintWriter)
methodpublic static java.lang.String getFullStackTrace(java.lang.Throwable throwable)
A way to get the entire nested stack-trace of an throwable.
throwable
- the Throwable
to be examined
public static java.lang.String[] getStackFrames(java.lang.Throwable throwable)
Captures the stack trace associated with the specified
Throwable
object, decomposing it into a list of stack
frames.
throwable
- the Throwable
to examine, may be null
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |