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
NestableError,
NestableException and
NestableRuntimeException.
Since: 1.0
Version: $Id: NestableDelegate.java 512889 2007-02-28 18:18:20Z dlr $
| 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 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 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
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
ExceptionUtils
(which is avaiable in all versions of lang).
An alternative is to use the public static flag 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