|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--org.apache.commons.lang.exception.NestableException
The base class of all exceptions which can contain other exceptions.
It is intended to ease the debugging by carrying on the information
about the exception which was caught and provoked throwing the
current exception. Catching and rethrowing may occur multiple
times, and provided that all exceptions except the first one
are descendands of NestedException
, when the
exception is finally printed out using any of the
printStackTrace()
methods, the stacktrace will contain
the information about all exceptions thrown and caught on
the way.
Running the following program
1 import org.apache.commons.NestedException; 2 3 public class Test { 4 public static void main( String[] args ) { 5 try { 6 a(); 7 } catch(Exception e) { 8 e.printStackTrace(); 9 } 10 } 11 12 public static void a() throws Exception { 13 try { 14 b(); 15 } catch(Exception e) { 16 throw new NestedException("foo", e); 17 } 18 } 19 20 public static void b() throws Exception { 21 try { 22 c(); 23 } catch(Exception e) { 24 throw new NestedException("bar", e); 25 } 26 } 27 28 public static void c() throws Exception { 29 throw new Exception("baz"); 30 } 31 }
Yields the following stacktrace:
java.lang.Exception: baz: bar: foo at Test.c(Test.java:29) at Test.b(Test.java:22) rethrown as NestedException: bar at Test.b(Test.java:24) at Test.a(Test.java:14) rethrown as NestedException: foo at Test.a(Test.java:16) at Test.main(Test.java:6)
Field Summary | |
private java.lang.Throwable |
cause
Holds the reference to the exception or error that caused this exception to be thrown. |
protected NestableDelegate |
delegate
The helper instance which contains much of the code which we delegate to. |
Fields inherited from class java.lang.Throwable |
backtrace, detailMessage, serialVersionUID |
Constructor Summary | |
NestableException()
Constructs a new NestableException without specified
detail message. |
|
NestableException(java.lang.String msg)
Constructs a new NestableException with specified
detail message. |
|
NestableException(java.lang.String msg,
java.lang.Throwable cause)
Constructs a new NestableException with specified
detail message and nested Throwable . |
|
NestableException(java.lang.Throwable cause)
Constructs a new NestableException with specified
nested Throwable . |
Method Summary | |
java.lang.Throwable |
getCause()
Returns the reference to the exception or error that caused the exception implementing the Nestable to be thrown. |
int |
getLength()
Returns the number of nested Throwable s represented by
this Nestable , including this Nestable . |
java.lang.String |
getMessage()
Returns the error message of this and any nested Throwable . |
java.lang.String |
getMessage(int index)
Returns the error message of the Throwable in the chain
of Throwable s at the specified index, numbererd from 0. |
java.lang.String[] |
getMessages()
Returns the error message of this and any nested Throwable s
in an array of Strings, one element for each message. |
java.lang.Throwable |
getThrowable(int index)
Returns the Throwable in the chain of
Throwable s at the specified index, numbererd from 0. |
java.lang.Throwable[] |
getThrowables()
Returns the error message of this and any nested Throwable s
in an array of Strings, one element for each message. |
int |
indexOfThrowable(java.lang.Class type)
Returns the index, numbered from 0, of the first occurrence of the specified type in the chain of Throwable s, or -1 if the
specified type is not found in the chain. |
int |
indexOfThrowable(int pos,
java.lang.Class type)
Returns the index, numbered from 0, of the first Throwable
that matches the specified type in the chain of Throwable s
with an index greater than or equal to the specified position, or -1 if
the type is not found. |
void |
printPartialStackTrace(java.io.PrintWriter out)
Prints the stack trace for this exception only--root cause not included--using the provided writer. |
void |
printStackTrace()
Prints the stack trace of this exception the the standar error stream. |
void |
printStackTrace(java.io.PrintStream out)
Prints the stack trace of this exception to the specified print stream. |
void |
printStackTrace(java.io.PrintWriter out)
Prints the stack trace of this exception to the specified print writer. |
Methods inherited from class java.lang.Throwable |
fillInStackTrace, getLocalizedMessage, printStackTrace0, toString |
Methods inherited from class java.lang.Object |
|
Field Detail |
protected NestableDelegate delegate
private java.lang.Throwable cause
Constructor Detail |
public NestableException()
NestableException
without specified
detail message.public NestableException(java.lang.String msg)
NestableException
with specified
detail message.msg
- The error message.public NestableException(java.lang.Throwable cause)
NestableException
with specified
nested Throwable
.nested
- The exception or error that caused this exception
to be thrown.public NestableException(java.lang.String msg, java.lang.Throwable cause)
NestableException
with specified
detail message and nested Throwable
.msg
- The error message.nested
- The exception or error that caused this exception
to be thrown.Method Detail |
public java.lang.Throwable getCause()
Nestable
Nestable
to be thrown.getCause
in interface Nestable
Nestable.getCause()
public int getLength()
Throwable
s represented by
this Nestable
, including this Nestable
.getLength
in interface Nestable
public java.lang.String getMessage()
Nestable
Throwable
.getMessage
in interface Nestable
getMessage
in class java.lang.Throwable
Nestable.getMessage()
public java.lang.String[] getMessages()
Throwable
s
in an array of Strings, one element for each message. Any
Throwable
specified without a message is represented in
the array by a null.getMessages
in interface Nestable
org.apache.commons.lang.exception.Nestable
public java.lang.Throwable getThrowable(int index)
Nestable
Throwable
in the chain of
Throwable
s at the specified index, numbererd from 0. If
index
is negative, the effect is the same as if it
were 0. If index
is greater than or equal to the length
of the chain, the last Throwable
in the chain is returned.getThrowable
in interface Nestable
org.apache.commons.lang.exception.Nestable
index
- the index of the Throwable
in the chain of
Throwable
sThrowable
public java.lang.Throwable[] getThrowables()
Nestable
Throwable
s
in an array of Strings, one element for each message. Any
Throwable
specified without a message is represented in
the array by a null.getThrowables
in interface Nestable
org.apache.commons.lang.exception.Nestable
Throwable
spublic java.lang.String getMessage(int index)
Nestable
Throwable
in the chain
of Throwable
s at the specified index, numbererd from 0.
If index
is negative, the effect is the same as if it
were 0. If index
is greater than or equal to the length
of the chain, the message of the last Throwable
in the
chain is returned.getMessage
in interface Nestable
org.apache.commons.lang.exception.Nestable
index
- the index of the Throwable
in the chain of
Throwable
spublic int indexOfThrowable(java.lang.Class type)
Throwable
s, or -1 if the
specified type is not found in the chain. If pos
is
negative, the effect is the same as if it were 0. If pos
is greater than or equal to the length of the chain, the effect is the
same as if it were the index of the last element in the chain.indexOfThrowable
in interface Nestable
type
- Class
to be foundpublic int indexOfThrowable(int pos, java.lang.Class type)
Throwable
that matches the specified type in the chain of Throwable
s
with an index greater than or equal to the specified position, or -1 if
the type is not found. If pos
is negative, the effect is the
same as if it were 0. If pos
is greater than or equal to the
length of the chain, the effect is the same as if it were the index of
the last element in the chain.indexOfThrowable
in interface Nestable
type
- Class
to be foundpos
- index, numbered from 0, of the starting position in the chain
to be searchedpublic void printStackTrace()
printStackTrace
in class java.lang.Throwable
public void printStackTrace(java.io.PrintStream out)
printStackTrace
in class java.lang.Throwable
out
- PrintStream
to use for output.public void printStackTrace(java.io.PrintWriter out)
Nestable
printStackTrace
in interface Nestable
printStackTrace
in class java.lang.Throwable
Nestable.printStackTrace(PrintWriter out)
public final void printPartialStackTrace(java.io.PrintWriter out)
Nestable
NestableDelegate
to write
individual stack traces to a buffer. The implementation of
this method should call
super.printStackTrace(out);
in most cases.printPartialStackTrace
in interface Nestable
Nestable.printPartialStackTrace(PrintWriter out)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |