org.apache.commons.lang.exception
public class NestableDelegate extends Object implements Serializable
A shared implementation of the nestable exception functionality.
The code is shared between {@link org.apache.commons.lang.exception.NestableError NestableError}, {@link org.apache.commons.lang.exception.NestableException NestableException} and {@link org.apache.commons.lang.exception.NestableRuntimeException NestableRuntimeException}.
Since: 1.0
Version: $Id: NestableDelegate.java 161243 2005-04-14 04:30:28Z ggregory $
| Field Summary | |
|---|---|
| static boolean | matchSubclasses
Whether to match subclasses via indexOf.
|
| static boolean | topDown
Whether to print the stack trace top-down.
|
| static boolean | trimStackFrames
Whether to trim the repeated stack trace.
|
| Constructor Summary | |
|---|---|
| NestableDelegate(Nestable nestable)
Constructs a new NestableDelegate instance to manage the
specified Nestable.
| |
| Method Summary | |
|---|---|
| String | getMessage(int index)
Returns the error message of the Throwable in the chain
of Throwables at the specified index, numbered from 0.
|
| String | getMessage(String baseMsg)
Returns the full message contained by the Nestable
and any nested Throwables.
|
| String[] | getMessages()
Returns the error message of this and any nested Throwables
in an array of Strings, one element for each message. |
| protected String[] | getStackFrames(Throwable t)
Captures the stack trace associated with the specified
Throwable object, decomposing it into a list of
stack frames.
|
| Throwable | getThrowable(int index)
Returns the Throwable in the chain of
Throwables at the specified index, numbered from 0.
|
| int | getThrowableCount()
Returns the number of Throwables contained in the
Nestable contained by this delegate.
|
| Throwable[] | getThrowables()
Returns this delegate's Nestable and any nested
Throwables in an array of Throwables, one
element for each Throwable.
|
| int | indexOfThrowable(Class type, int fromIndex)
Returns the index, numbered from 0, of the first Throwable
that matches the specified type, or a subclass, in the chain of Throwables
with an index greater than or equal to the specified index.
|
| void | printStackTrace()
Prints the stack trace of this exception the the standar error
stream. |
| void | printStackTrace(PrintStream out)
Prints the stack trace of this exception to the specified
stream.
|
| void | printStackTrace(PrintWriter out)
Prints the stack trace of this exception to the specified
writer. |
| protected void | trimStackFrames(List stacks)
Trims the stack frames. |
Since: 2.1
Since: 2.0
Since: 2.0
NestableDelegate instance to manage the
specified Nestable.
Parameters: nestable the Nestable implementation (must extend {@link java.lang.Throwable})
Since: 2.0
Throwable in the chain
of Throwables at the specified index, numbered from 0.
Parameters: index the index of the Throwable in the chain of
Throwables
Returns: the error message, or null if the Throwable at the
specified index in the chain does not contain a message
Throws: IndexOutOfBoundsException if the index argument is
negative or not less than the count of Throwables in the
chain
Since: 2.0
Nestable
and any nested Throwables.
Parameters: baseMsg the base message to use when creating the full
message. Should be generally be called via
nestableHelper.getMessage(super.getMessage()),
where super is an instance of {@link
java.lang.Throwable}.
Returns: The concatenated message for this and all nested
Throwables
Since: 2.0
Throwables
in an array of Strings, one element for each message. Any
Throwable not containing a message is represented in the
array by a null. This has the effect of cause the length of the returned
array to be equal to the result of the {@link #getThrowableCount()}
operation.
Returns: the error messages
Since: 2.0
Throwable object, decomposing it into a list of
stack frames.
Parameters: t The Throwable.
Returns: An array of strings describing each stack frame.
Since: 2.0
Throwable in the chain of
Throwables at the specified index, numbered from 0.
Parameters: index the index, numbered from 0, of the Throwable in
the chain of Throwables
Returns: the Throwable
Throws: IndexOutOfBoundsException if the index argument is
negative or not less than the count of Throwables in the
chain
Since: 2.0
Throwables contained in the
Nestable contained by this delegate.
Returns: the throwable count
Since: 2.0
Nestable and any nested
Throwables in an array of Throwables, one
element for each Throwable.
Returns: the Throwables
Since: 2.0
Throwable
that matches the specified type, or a subclass, in the chain of Throwables
with an index greater than or equal to the specified index.
The method returns -1 if the specified type is not found in the chain.
NOTE: From v2.1, we have clarified the Nestable interface
such that this method matches subclasses.
If you want to NOT match subclasses, please use
{@link ExceptionUtils#indexOfThrowable(Throwable, Class, int)}
(which is avaiable in all versions of lang).
An alternative is to use the public static flag {@link #matchSubclasses}
on NestableDelegate, however this is not recommended.
Parameters: type the type to find, subclasses match, null returns -1 fromIndex the index, numbered from 0, of the starting position in the chain to be searched
Returns: index of the first occurrence of the type in the chain, or -1 if the type is not found
Throws: IndexOutOfBoundsException if the fromIndex argument
is negative or not less than the count of Throwables in the
chain
Since: 2.0
Parameters: out PrintStream to use for output.
See Also: printStackTrace
getCause
method (i.e. running on jre1.4 or higher), this method just
uses Throwable's printStackTrace() method. Otherwise, generates
the stack-trace, by taking into account the 'topDown' and
'trimStackFrames' parameters. The topDown and trimStackFrames
are set to 'true' by default (produces jre1.4-like stack trace).
Parameters: out PrintWriter to use for output.
Parameters: stacks The list containing String[] elements
Since: 2.0