public class NestableDelegate extends Object implements Serializable
A shared implementation of the nestable exception functionality.
The code is shared between
Modifier and Type | Field and Description |
---|---|
static boolean |
topDown
Whether to print the stack trace top-down.
|
static boolean |
trimStackFrames
Whether to trim the repeated stack trace.
|
Constructor and Description |
---|
NestableDelegate(Nestable nestable)
Constructs a new
NestableDelegate instance to manage the
specified Nestable . |
Modifier and Type | Method and Description |
---|---|
String |
getMessage(int index)
Returns the error message of the
Throwable in the chain of
Throwable s at the specified index, numbered from 0. |
String |
getMessage(String baseMsg)
Returns the full message contained by the
Nestable and any
nested Throwable s. |
String[] |
getMessages()
Returns the error message of this and any nested
Throwable s
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
Throwable s at the specified index, numbered from 0. |
int |
getThrowableCount()
Returns the number of
Throwable s contained in the
Nestable contained by this delegate. |
Throwable[] |
getThrowables()
Returns this delegate's
Nestable and any nested
Throwable s in an array of Throwable s, 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 in the chain of Throwable s
held in this delegate's Nestable with an index greater
than or equal to the specified index, or -1 if the type is not found. |
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<String[]> stacks)
Trims the stack frames.
|
public static boolean topDown
public static boolean trimStackFrames
public String getMessage(int index)
Throwable
in the chain of
Throwable
s at the specified index, numbered from 0.index
- the index of the Throwable
in the chain of
Throwable
sThrowable
at the
specified index in the chain does not contain a messageIndexOutOfBoundsException
- if the index
argument is negative or not less
than the count of Throwable
s in the chainpublic String getMessage(String baseMsg)
Nestable
and any
nested Throwable
s.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 Throwable
.Throwable
spublic String[] getMessages()
Throwable
s
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.public Throwable getThrowable(int index)
Throwable
in the chain of
Throwable
s at the specified index, numbered from 0.index
- the index, numbered from 0, of the Throwable
in
the chain of Throwable
sThrowable
IndexOutOfBoundsException
- if the index
argument is negative or not less
than the count of Throwable
s in the chainpublic int getThrowableCount()
Throwable
s contained in the
Nestable
contained by this delegate.public Throwable[] getThrowables()
Nestable
and any nested
Throwable
s in an array of Throwable
s, one
element for each Throwable
.Throwable
spublic int indexOfThrowable(Class<?> type, int fromIndex)
Throwable
that matches the specified type in the chain of Throwable
s
held in this delegate's Nestable
with an index greater
than or equal to the specified index, or -1 if the type is not found.type
- Class
to be foundfromIndex
- the index, numbered from 0, of the starting position in the
chain to be searchedIndexOutOfBoundsException
- if the fromIndex
argument is negative or not
less than the count of Throwable
s in the
chainpublic void printStackTrace()
public void printStackTrace(PrintStream out)
out
- PrintStream
to use for output.printStackTrace(PrintWriter)
public void printStackTrace(PrintWriter out)
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).out
- PrintWriter
to use for output.protected String[] getStackFrames(Throwable t)
Throwable
object, decomposing it into a list of stack
frames.t
- The Throwable
.Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.