| java.lang.Object org.apache.commons.lang.exception.ExceptionUtils
ExceptionUtils | public class ExceptionUtils (Code) | | Provides utilities for manipulating and examining
Throwable objects.
author: Daniel Rall author: Dmitri Plotnikov author: Stephen Colebourne author: Gary Gregory author: Pete Gieser since: 1.0 version: $Id: ExceptionUtils.java 437554 2006-08-28 06:21:41Z bayard $ |
Constructor Summary | |
public | ExceptionUtils()
Public constructor allows an instance of ExceptionUtils to be created, although that is not
normally necessary. |
Method Summary | |
public static void | addCauseMethodName(String methodName) | public static Throwable | getCause(Throwable throwable) Introspects the Throwable to obtain the cause.
The method searches for methods with specific names that return a
Throwable object. | public static Throwable | getCause(Throwable throwable, String[] methodNames) Introspects the Throwable to obtain the cause.
- Try known exception types.
- Try the supplied array of method names.
- Try the field 'detail'.
A null set of method names means use the default set. | public static String | getFullStackTrace(Throwable throwable) | public static String | getMessage(Throwable th) Gets a short message summarising the exception. | public static Throwable | getRootCause(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
ExceptionUtils.getCause(Throwable) , and
returns that exception.
From version 2.2, this method handles recursive cause structures
that might otherwise cause infinite loops. | public static String | getRootCauseMessage(Throwable th) Gets a short message summarising the root cause exception. | public static String[] | getRootCauseStackTrace(Throwable throwable) Creates a compact stack trace for the root cause of the supplied
Throwable .
The output of this method is consistent across JDK versions.
It consists of the root exception followed by each of its wrapping
exceptions separated by '[wrapped]'. | static List | getStackFrameList(Throwable t) Produces a List of stack frames - the message
is not included. | public static String[] | getStackFrames(Throwable throwable) Captures the stack trace associated with the specified
Throwable object, decomposing it into a list of
stack frames.
The result of this method vary by JDK version as this method
uses
Throwable.printStackTrace(java.io.PrintWriter) . | static String[] | getStackFrames(String stackTrace) | public static String | getStackTrace(Throwable throwable) Gets the stack trace from a Throwable as a String.
The result of this method vary by JDK version as this method
uses
Throwable.printStackTrace(java.io.PrintWriter) . | public static int | getThrowableCount(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 .
From version 2.2, this method handles recursive cause structures
that might otherwise cause infinite loops. | public static List | getThrowableList(Throwable throwable) Returns the list of Throwable objects in the
exception chain.
A throwable without cause will return a list containing
one element - the input throwable.
A throwable with one cause will return a list containing
two elements. | public static Throwable[] | getThrowables(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. | public static int | indexOfThrowable(Throwable throwable, Class clazz) Returns the (zero based) index of the first Throwable
that matches the specified class (exactly) in the exception chain. | public static int | indexOfThrowable(Throwable throwable, Class clazz, int fromIndex) Returns the (zero based) index of the first Throwable
that matches the specified type in the exception chain from
a specified index. | public static int | indexOfType(Throwable throwable, Class type) Returns the (zero based) index of the first Throwable
that matches the specified class or subclass in the exception chain. | public static int | indexOfType(Throwable throwable, 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. | public static boolean | isCauseMethodName(String methodName) Tests if the list of method names used in the search for Throwable
objects include the given name.
Parameters: methodName - the methodName to search in the list. | public static boolean | isNestedThrowable(Throwable throwable) | public static boolean | isThrowableNested() | public static void | printRootCauseStackTrace(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. | public static void | printRootCauseStackTrace(Throwable throwable, 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. | public static void | printRootCauseStackTrace(Throwable throwable, 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. | public static void | removeCauseMethodName(String methodName) | public static void | removeCommonFrames(List causeFrames, List wrapperFrames) | public static boolean | setCause(Throwable target, Throwable cause) |
WRAPPED_MARKER | final static String WRAPPED_MARKER(Code) | | Used when printing stack frames to denote the start of a
wrapped exception.
Package private for accessibility by test suite.
|
ExceptionUtils | public ExceptionUtils()(Code) | |
Public constructor allows an instance of ExceptionUtils to be created, although that is not
normally necessary.
|
addCauseMethodName | public static void addCauseMethodName(String methodName)(Code) | | Adds to the list of method names used in the search for Throwable
objects.
Parameters: methodName - the methodName to add to the list, null and empty strings are ignored since: 2.0 |
getCause | public static Throwable getCause(Throwable throwable)(Code) | | 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
org.apache.commons.lang.exception.NestableException NestableException .
The method names can be added to using
ExceptionUtils.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 .
Parameters: throwable - the throwable to introspect for a cause, may be null the cause of the Throwable ,null if none found or null throwable input since: 1.0 |
getCause | public static Throwable getCause(Throwable throwable, String[] methodNames)(Code) | | Introspects the Throwable to obtain the cause.
- Try known exception types.
- Try the supplied array of method names.
- Try the field 'detail'.
A null set of method names means use the default set.
A null in the set of method names will be ignored.
Parameters: throwable - the throwable to introspect for a cause, may be null Parameters: methodNames - the method names, null treated as default set the cause of the Throwable ,null if none found or null throwable input since: 1.0 |
getFullStackTrace | public static String getFullStackTrace(Throwable throwable)(Code) | | A way to get the entire nested stack-trace of an throwable.
The result of this method is highly dependent on the JDK version
and whether the exceptions override printStackTrace or not.
Parameters: throwable - the Throwable to be examined the nested stack trace, with the root cause first since: 2.0 |
getMessage | public static String getMessage(Throwable th)(Code) | | Gets a short message summarising the exception.
The message returned is of the form
{ClassNameWithoutPackage}: {ThrowableMessage}
Parameters: th - the throwable to get a message for, null returns empty string the message, non-null since: Commons Lang 2.2 |
getRootCause | public static Throwable getRootCause(Throwable throwable)(Code) | | Introspects the Throwable to obtain the root cause.
This method walks through the exception chain to the last element,
"root" of the tree, using
ExceptionUtils.getCause(Throwable) , and
returns that exception.
From version 2.2, this method handles recursive cause structures
that might otherwise cause infinite loops. If the throwable parameter
has a cause of itself, then null will be returned. If the throwable
parameter cause chain loops, the last element in the chain before the
loop is returned.
Parameters: throwable - the throwable to get the root cause for, may be null the root cause of the Throwable ,null if none found or null throwable input |
getRootCauseMessage | public static String getRootCauseMessage(Throwable th)(Code) | | Gets a short message summarising the root cause exception.
The message returned is of the form
{ClassNameWithoutPackage}: {ThrowableMessage}
Parameters: th - the throwable to get a message for, null returns empty string the message, non-null since: Commons Lang 2.2 |
getRootCauseStackTrace | public static String[] getRootCauseStackTrace(Throwable throwable)(Code) | | Creates a compact stack trace for the root cause of the supplied
Throwable .
The output of this method is consistent across JDK versions.
It consists of the root exception followed by each of its wrapping
exceptions separated by '[wrapped]'. Note that this is the opposite
order to the JDK1.4 display.
Parameters: throwable - the throwable to examine, may be null an array of stack trace frames, never null since: 2.0 |
getStackFrameList | static List getStackFrameList(Throwable t)(Code) | | Produces a List of stack frames - the message
is not included. Only the trace of the specified exception is
returned, any caused by trace is stripped.
This works in most cases - it will only fail if the exception
message contains a line that starts with:
" at".
Parameters: t - is any throwable List of stack frames |
getStackFrames | public static String[] getStackFrames(Throwable throwable)(Code) | | Captures the stack trace associated with the specified
Throwable object, decomposing it into a list of
stack frames.
The result of this method vary by JDK version as this method
uses
Throwable.printStackTrace(java.io.PrintWriter) .
On JDK1.3 and earlier, the cause exception will not be shown
unless the specified throwable alters printStackTrace.
Parameters: throwable - the Throwable to examine, may be null an array of strings describing each stack frame, never null |
getStackTrace | public static String getStackTrace(Throwable throwable)(Code) | | Gets the stack trace from a Throwable as a String.
The result of this method vary by JDK version as this method
uses
Throwable.printStackTrace(java.io.PrintWriter) .
On JDK1.3 and earlier, the cause exception will not be shown
unless the specified throwable alters printStackTrace.
Parameters: throwable - the Throwable to be examined the stack trace as generated by the exception'sprintStackTrace(PrintWriter) method |
getThrowableCount | public static int getThrowableCount(Throwable throwable)(Code) | | 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 .
From version 2.2, this method handles recursive cause structures
that might otherwise cause infinite loops. The cause chain is
processed until the end is reached, or until the next item in the
chain is already in the result set.
Parameters: throwable - the throwable to inspect, may be null the count of throwables, zero if null input |
getThrowableList | public static List getThrowableList(Throwable throwable)(Code) | | Returns the list of Throwable objects in the
exception chain.
A throwable without cause will return a list containing
one element - the input throwable.
A throwable with one cause will return a list containing
two elements. - the input throwable and the cause throwable.
A null throwable will return a list of size zero.
This method handles recursive cause structures that might
otherwise cause infinite loops. The cause chain is processed until
the end is reached, or until the next item in the chain is already
in the result set.
Parameters: throwable - the throwable to inspect, may be null the list of throwables, never null since: Commons Lang 2.2 |
getThrowables | public static Throwable[] getThrowables(Throwable throwable)(Code) | | 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 of size zero.
From version 2.2, this method handles recursive cause structures
that might otherwise cause infinite loops. The cause chain is
processed until the end is reached, or until the next item in the
chain is already in the result set.
See Also: ExceptionUtils.getThrowableList(Throwable) Parameters: throwable - the throwable to inspect, may be null the array of throwables, never null |
indexOfThrowable | public static int indexOfThrowable(Throwable throwable, Class clazz)(Code) | | Returns the (zero based) index of the first Throwable
that matches the specified class (exactly) in the exception chain.
Subclasses of the specified class do not match - see
ExceptionUtils.indexOfType(Throwable,Class) for the opposite.
A null throwable returns -1 .
A null type returns -1 .
No match in the chain returns -1 .
Parameters: throwable - the throwable to inspect, may be null Parameters: clazz - the class to search for, subclasses do not match, null returns -1 the index into the throwable chain, -1 if no match or null input |
indexOfThrowable | public static int indexOfThrowable(Throwable throwable, Class clazz, int fromIndex)(Code) | | Returns the (zero based) index of the first Throwable
that matches the specified type in the exception chain from
a specified index.
Subclasses of the specified class do not match - see
ExceptionUtils.indexOfType(Throwable,Class,int) for the opposite.
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 .
Parameters: throwable - the throwable to inspect, may be null Parameters: clazz - the class to search for, subclasses do not match, null returns -1 Parameters: fromIndex - the (zero based) index of the starting position,negative treated as zero, larger than chain size returns -1 the index into the throwable chain, -1 if no match or null input |
indexOfType | public static int indexOfType(Throwable throwable, Class type)(Code) | | Returns the (zero based) index of the first Throwable
that matches the specified class or subclass in the exception chain.
Subclasses of the specified class do match - see
ExceptionUtils.indexOfThrowable(Throwable,Class) for the opposite.
A null throwable returns -1 .
A null type returns -1 .
No match in the chain returns -1 .
Parameters: throwable - the throwable to inspect, may be null Parameters: type - the type to search for, subclasses match, null returns -1 the index into the throwable chain, -1 if no match or null input since: 2.1 |
indexOfType | public static int indexOfType(Throwable throwable, Class type, int fromIndex)(Code) | | Returns the (zero based) index of the first Throwable
that matches the specified type in the exception chain from
a specified index.
Subclasses of the specified class do match - see
ExceptionUtils.indexOfThrowable(Throwable,Class) for the opposite.
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 .
Parameters: throwable - the throwable to inspect, may be null Parameters: type - the type to search for, subclasses match, null returns -1 Parameters: fromIndex - the (zero based) index of the starting position,negative treated as zero, larger than chain size returns -1 the index into the throwable chain, -1 if no match or null input since: 2.1 |
isCauseMethodName | public static boolean isCauseMethodName(String methodName)(Code) | | Tests if the list of method names used in the search for Throwable
objects include the given name.
Parameters: methodName - the methodName to search in the list. if the list of method names used in the search for Throwable objects include the given name. since: 2.1 |
isNestedThrowable | public static boolean isNestedThrowable(Throwable throwable)(Code) | | Checks whether this Throwable class can store a cause.
This method does not check whether it actually does store a cause.
Parameters: throwable - the Throwable to examine, may be null boolean true if nested otherwise false since: 2.0 |
isThrowableNested | public static boolean isThrowableNested()(Code) | | Checks if the Throwable class has a getCause method.
This is true for JDK 1.4 and above.
true if Throwable is nestable since: 2.0 |
printRootCauseStackTrace | public static void printRootCauseStackTrace(Throwable throwable)(Code) | | 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 output of this method is consistent across JDK versions.
Note that this is the opposite order to the JDK1.4 display.
The method is equivalent to printStackTrace for throwables
that don't have nested causes.
Parameters: throwable - the throwable to output since: 2.0 |
printRootCauseStackTrace | public static void printRootCauseStackTrace(Throwable throwable, PrintStream stream)(Code) | | 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 output of this method is consistent across JDK versions.
Note that this is the opposite order to the JDK1.4 display.
The method is equivalent to printStackTrace for throwables
that don't have nested causes.
Parameters: throwable - the throwable to output, may be null Parameters: stream - the stream to output to, may not be null throws: IllegalArgumentException - if the stream is null since: 2.0 |
printRootCauseStackTrace | public static void printRootCauseStackTrace(Throwable throwable, PrintWriter writer)(Code) | | 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 output of this method is consistent across JDK versions.
Note that this is the opposite order to the JDK1.4 display.
The method is equivalent to printStackTrace for throwables
that don't have nested causes.
Parameters: throwable - the throwable to output, may be null Parameters: writer - the writer to output to, may not be null throws: IllegalArgumentException - if the writer is null since: 2.0 |
removeCauseMethodName | public static void removeCauseMethodName(String methodName)(Code) | | Removes from the list of method names used in the search for Throwable
objects.
Parameters: methodName - the methodName to remove from the list, null and empty strings are ignored since: 2.1 |
removeCommonFrames | public static void removeCommonFrames(List causeFrames, List wrapperFrames)(Code) | | Removes common frames from the cause trace given the two stack traces.
Parameters: causeFrames - stack trace of a cause throwable Parameters: wrapperFrames - stack trace of a wrapper throwable throws: IllegalArgumentException - if either argument is null since: 2.0 |
setCause | public static boolean setCause(Throwable target, Throwable cause)(Code) | | Sets the cause of a Throwable using introspection, allowing
source code compatibility between pre-1.4 and post-1.4 Java releases.
The typical use of this method is inside a constructor as in
the following example:
import org.apache.commons.lang.exception.ExceptionUtils;
public class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
public MyException(String msg, Throwable cause) {
super(msg);
ExceptionUtils.setCause(this, cause);
}
}
Parameters: target - the target Throwable Parameters: cause - the Throwable to set in the target a true if the target has been modified since: 2.2 |
|
|