| 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjava.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(String msg)
Constructs a new NestableException with specified
 detail message. | 
|
NestableException(String msg,
                  Throwable cause)
Constructs a new NestableException with specified
 detail message and nested Throwable. | 
|
NestableException(Throwable cause)
Constructs a new NestableException with specified
 nested Throwable. | 
|
| Method Summary | |
 Throwable | 
getCause()
 | 
 String | 
getMessage()
Returns the detail message string of this throwable.  | 
 String | 
getMessage(int index)
Returns the error message of the Throwable in the chain
 of Throwables at the specified index, numbered from 0. | 
 String[] | 
getMessages()
Returns the error message of this and any nested 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 Nestable.getThrowableCount()
 operation. | 
 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 nested Throwables represented by
 this Nestable, including this Nestable. | 
 Throwable[] | 
getThrowables()
Returns this Nestable and any nested Throwables
 in an array of Throwables, one element for each
 Throwable. | 
 int | 
indexOfThrowable(Class type)
Returns the index, numbered from 0, of the first occurrence of the specified type, or a subclass, in the chain of Throwables.
 The method returns -1 if the specified type is not found in the chain.
 
 NOTE: From v2.1, we have clarified the   | 
 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.
 The method returns -1 if the specified type is not found in the chain.
 
 NOTE: From v2.1, we have clarified the   | 
 void | 
printPartialStackTrace(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(PrintStream out)
 | 
 void | 
printStackTrace(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(String msg)
NestableException with specified
 detail message.
msg - The error message.public NestableException(Throwable cause)
NestableException with specified
 nested Throwable.
cause - the exception or error that caused this exception to be
 thrown
public NestableException(String msg,
                         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 Throwable getCause()
getCause in interface Nestablepublic String getMessage()
getMessage in interface Nestablepublic String getMessage(int index)
Throwable in the chain
 of Throwables at the specified index, numbered from 0.
getMessage in interface Nestableindex - the index of the Throwable in the chain of
 Throwables
Throwable at the
 specified index in the chain does not contain a messagepublic String[] getMessages()
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 Nestable.getThrowableCount()
 operation.
getMessages in interface Nestablepublic Throwable getThrowable(int index)
Throwable in the chain of
 Throwables at the specified index, numbered from 0.
getThrowable in interface Nestableindex - the index, numbered from 0, of the Throwable in
 the chain of Throwables
Throwablepublic int getThrowableCount()
Throwables represented by
 this Nestable, including this Nestable.
getThrowableCount in interface Nestablepublic Throwable[] getThrowables()
Nestable and any nested Throwables
 in an array of Throwables, one element for each
 Throwable.
getThrowables in interface NestableThrowablespublic int indexOfThrowable(Class type)
Throwables.
 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 Nestabletype - the type to find, subclasses match, null returns -1
public int indexOfThrowable(Class type,
                            int fromIndex)
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.indexOfThrowable(Throwable, Class, int)
 (which is avaiable in all versions of lang).
indexOfThrowable in interface Nestabletype - 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(PrintStream out)
printStackTrace in interface Nestablepublic void printStackTrace(PrintWriter out)
printStackTrace in interface Nestablepublic final void printPartialStackTrace(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 Nestableout - The writer to use.
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||