|
|||||||||
| 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. |
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 Throwables at the specified index, numbererd from 0. |
java.lang.String[] |
getMessages()
Returns the error message of this and any nested Throwables
in an array of Strings, one element for each message. |
java.lang.Throwable |
getThrowable(int index)
Returns the Throwable in the chain of
Throwables at the specified index, numbererd from 0. |
int |
getThrowableCount()
Returns the number of nested Throwables represented by
this Nestable, including this Nestable. |
java.lang.Throwable[] |
getThrowables()
Returns this Nestable and any nested Throwables
in an array of Throwables, one element for each
Throwable. |
int |
indexOfThrowable(java.lang.Class type)
Returns the index, numbered from 0, of the first occurrence of the specified type in the chain of Throwables, or -1 if the
specified type is not found in the chain. |
int |
indexOfThrowable(java.lang.Class type,
int fromIndex)
Returns the index, numbered from 0, of the first Throwable
that matches the specified type in the chain of Throwables
with an index greater than or equal to the specified index, 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()
|
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.cause - 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 messagecause - the exception or error that caused this exception to be
thrown| Method Detail |
public java.lang.Throwable getCause()
NestableNestable to be thrown.getCause in interface Nestablepublic java.lang.String getMessage()
NestableThrowable.getMessage in interface NestablegetMessage in class java.lang.Throwableorg.apache.commons.lang.exception.Nestablepublic java.lang.String getMessage(int index)
NestableThrowable in the chain
of Throwables at the specified index, numbererd from 0.getMessage in interface Nestableorg.apache.commons.lang.exception.Nestableindex - the index of the Throwable in the chain of
ThrowablesThrowable 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 Throwables in the
chainpublic java.lang.String[] getMessages()
NestableThrowables
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 Nestable.getThrowableCount()
operation.getMessages in interface Nestableorg.apache.commons.lang.exception.Nestablepublic java.lang.Throwable getThrowable(int index)
NestableThrowable in the chain of
Throwables at the specified index, numbererd from 0.getThrowable in interface Nestableorg.apache.commons.lang.exception.Nestableindex - the index, numbered from 0, of the Throwable in
the chain of ThrowablesThrowableIndexOutOfBoundsException - if the index argument is
negative or not less than the count of Throwables in the
chainpublic int getThrowableCount()
NestableThrowables represented by
this Nestable, including this Nestable.getThrowableCount in interface Nestableorg.apache.commons.lang.exception.Nestablepublic java.lang.Throwable[] getThrowables()
NestableNestable and any nested Throwables
in an array of Throwables, one element for each
Throwable.getThrowables in interface Nestableorg.apache.commons.lang.exception.NestableThrowablespublic int indexOfThrowable(java.lang.Class type)
NestableThrowables, or -1 if the
specified type is not found in the chain.indexOfThrowable in interface Nestableorg.apache.commons.lang.exception.Nestabletype - Class to be found
public int indexOfThrowable(java.lang.Class type,
int fromIndex)
NestableThrowable
that matches the specified type in the chain of Throwables
with an index greater than or equal to the specified index, or -1 if
the type is not found.indexOfThrowable in interface Nestableorg.apache.commons.lang.exception.Nestabletype - 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 Throwables in the
chainpublic void printStackTrace()
printStackTrace in class java.lang.Throwablepublic void printStackTrace(java.io.PrintStream out)
NestableprintStackTrace in interface NestableprintStackTrace in class java.lang.Throwableorg.apache.commons.lang.exception.Nestableout - PrintStream to use for output.public void printStackTrace(java.io.PrintWriter out)
NestableprintStackTrace in interface NestableprintStackTrace in class java.lang.Throwableorg.apache.commons.lang.exception.Nestableout - PrintWriter to use for output.public final void printPartialStackTrace(java.io.PrintWriter out)
NestableNestableDelegate to write
individual stack traces to a buffer. The implementation of
this method should call
super.printStackTrace(out); in most cases.printPartialStackTrace in interface Nestableorg.apache.commons.lang.exception.Nestableout - The writer to use.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||