|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | 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 descendants of NestedException
, when the
exception is finally printed out using any of the
printStackTrace()
methods, the stack trace will contain
the information about all exceptions thrown and caught on
the way.
Running the following program
1 import org.apache.commons.lang.exception.NestableException; 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 NestableException("foo", e); 17 } 18 } 19 20 public static void b() throws Exception { 21 try { 22 c(); 23 } catch(Exception e) { 24 throw new NestableException("bar", e); 25 } 26 } 27 28 public static void c() throws Exception { 29 throw new Exception("baz"); 30 } 31 }
Yields the following stack trace:
org.apache.commons.lang.exception.NestableException: foo at Test.a(Test.java:16) at Test.main(Test.java:6) Caused by: org.apache.commons.lang.exception.NestableException: bar at Test.b(Test.java:24) at Test.a(Test.java:14) ... 1 more Caused by: java.lang.Exception: baz at Test.c(Test.java:29) at Test.b(Test.java:22) ... 2 more
Field Summary | |
protected NestableDelegate |
delegate
The helper instance which contains much of the code which we delegate to. |
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()
|
java.lang.String |
getMessage()
Returns the detail message string of this throwable. |
java.lang.String |
getMessage(int index)
Returns the error message of the Throwable in the chain
of Throwable s at the specified index, numbered 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. 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. |
java.lang.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 nested Throwable s represented by
this Nestable , including this Nestable . |
java.lang.Throwable[] |
getThrowables()
Returns this Nestable and any nested Throwable s
in an array of Throwable s, 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, or a subclass, in the chain of Throwable s.
The method returns -1 if the specified type is not found in the chain.
NOTE: From v2.1, we have clarified the |
int |
indexOfThrowable(java.lang.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 Throwable s
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 |
void |
printPartialStackTrace(java.io.PrintWriter out)
Prints the stack trace for this exception only--root cause not included--using the provided writer. Used by NestableDelegate to write
individual stack traces to a buffer. The implementation of
this method should call
super.printStackTrace(out); in most cases. |
void |
printStackTrace()
|
void |
printStackTrace(java.io.PrintStream out)
|
void |
printStackTrace(java.io.PrintWriter out)
|
Methods inherited from class java.lang.Throwable |
fillInStackTrace, getLocalizedMessage, getStackTrace, initCause, setStackTrace, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected NestableDelegate delegate
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
thrownpublic 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
thrownMethod Detail |
public java.lang.Throwable getCause()
getCause
in interface Nestable
public java.lang.String getMessage()
getMessage
in interface Nestable
public java.lang.String getMessage(int index)
Throwable
in the chain
of Throwable
s at the specified index, numbered from 0.
getMessage
in interface Nestable
index
- the index of the Throwable
in the chain of
Throwable
s
Throwable
at the
specified index in the chain does not contain a messagepublic java.lang.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 Nestable.getThrowableCount()
operation.
getMessages
in interface Nestable
public java.lang.Throwable getThrowable(int index)
Throwable
in the chain of
Throwable
s at the specified index, numbered from 0.
getThrowable
in interface Nestable
index
- the index, numbered from 0, of the Throwable
in
the chain of Throwable
s
Throwable
public int getThrowableCount()
Throwable
s represented by
this Nestable
, including this Nestable
.
getThrowableCount
in interface Nestable
public java.lang.Throwable[] getThrowables()
Nestable
and any nested Throwable
s
in an array of Throwable
s, one element for each
Throwable
.
getThrowables
in interface Nestable
Throwable
spublic int indexOfThrowable(java.lang.Class type)
Throwable
s.
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.indexOfThrowable(Throwable, Class)
(which is avaiable in all versions of lang).
indexOfThrowable
in interface Nestable
type
- the type to find, subclasses match, null returns -1
public int indexOfThrowable(java.lang.Class type, int fromIndex)
Throwable
that matches the specified type, or a subclass, in the chain of Throwable
s
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.indexOfThrowable(Throwable, Class, int)
(which is avaiable in all versions of lang).
indexOfThrowable
in interface Nestable
type
- the type to find, subclasses match, null returns -1fromIndex
- the index, numbered from 0, of the starting position in
the chain to be searched
public void printStackTrace()
public void printStackTrace(java.io.PrintStream out)
printStackTrace
in interface Nestable
public void printStackTrace(java.io.PrintWriter out)
printStackTrace
in interface Nestable
public final void printPartialStackTrace(java.io.PrintWriter out)
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
out
- The writer to use.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |