public class NestableException extends Exception implements Nestable
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
| Modifier and Type | Field and Description |
|---|---|
protected NestableDelegate |
delegate
The helper instance which contains much of the code which we delegate to.
|
| Constructor and Description |
|---|
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. |
| Modifier and Type | Method and Description |
|---|---|
Throwable |
getCause()
Returns the reference to the exception or error that caused the exception
implementing the
Nestable to be thrown. |
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. |
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 in the chain of
Throwables, or -1 if the
specified type is not found in the chain. |
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 Throwables
with an index greater than or equal to the specified index, or -1 if the
type is not found. |
void |
printPartialStackTrace(PrintWriter out)
Prints the stack trace for this exception only--root cause not
included--using the provided writer.
|
void |
printStackTrace() |
void |
printStackTrace(PrintStream out)
Prints the stack trace of this exception to the specified print stream.
|
void |
printStackTrace(PrintWriter out)
Prints the stack trace of this exception to the specified print writer.
|
addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, initCause, setStackTrace, toStringprotected NestableDelegate delegate
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 thrownpublic Throwable getCause()
NestableNestable to be thrown.public String getMessage()
getMessage in interface NestablegetMessage in class Throwablepublic String getMessage(int index)
NestableThrowable 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
ThrowablesThrowable at the
specified index in the chain does not contain a messagepublic 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 Nestablepublic Throwable getThrowable(int index)
NestableThrowable 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 ThrowablesThrowablepublic int getThrowableCount()
NestableThrowables represented by
this Nestable, including this Nestable.getThrowableCount in interface Nestablepublic Throwable[] getThrowables()
NestableNestable and any nested
Throwables in an array of Throwables, one
element for each Throwable.getThrowables in interface NestableThrowablespublic int indexOfThrowable(Class type)
NestableThrowables, or -1 if the
specified type is not found in the chain.indexOfThrowable in interface Nestabletype - Class to be foundpublic int indexOfThrowable(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 Nestabletype - Class to be foundfromIndex - the index, numbered from 0, of the starting position in the
chain to be searchedpublic void printStackTrace()
printStackTrace in class Throwablepublic void printStackTrace(PrintStream out)
NestableprintStackTrace in interface NestableprintStackTrace in class Throwableout - PrintStream to use for output.public void printStackTrace(PrintWriter out)
NestableprintStackTrace in interface NestableprintStackTrace in class Throwableout - PrintWriter to use for output.public final void printPartialStackTrace(PrintWriter out)
Nestablesuper.printStackTrace(out); in most cases.printPartialStackTrace in interface Nestableout - The writer to use.Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.