Class NestableException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- org.apache.commons.lang.exception.NestableException
-
- All Implemented Interfaces:
java.io.Serializable
,Nestable
@Deprecated(since="2021-04-30") public class NestableException extends java.lang.Exception implements Nestable
Deprecated.Commons Lang 2 is in maintenance mode. Commons Lang 3 should be used instead.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 ofNestedException
, when the exception is finally printed out using any of theprintStackTrace()
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
- Since:
- 1.0
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description NestableException()
Deprecated.Constructs a newNestableException
without specified detail message.NestableException(java.lang.String msg)
Deprecated.Constructs a newNestableException
with specified detail message.NestableException(java.lang.String msg, java.lang.Throwable cause)
Deprecated.Constructs a newNestableException
with specified detail message and nestedThrowable
.NestableException(java.lang.Throwable cause)
Deprecated.Constructs a newNestableException
with specified nestedThrowable
.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.Throwable
getCause()
Deprecated.Returns the reference to the exception or error that caused the exception implementing theNestable
to be thrown.java.lang.String
getMessage()
Deprecated.Returns the detail message string of this throwable.java.lang.String
getMessage(int index)
Deprecated.Returns the error message of theThrowable
in the chain ofThrowable
s at the specified index, numbered from 0.java.lang.String[]
getMessages()
Deprecated.Returns the error message of this and any nestedThrowable
s in an array of Strings, one element for each message.java.lang.Throwable
getThrowable(int index)
Deprecated.Returns theThrowable
in the chain ofThrowable
s at the specified index, numbered from 0.int
getThrowableCount()
Deprecated.Returns the number of nestedThrowable
s represented by thisNestable
, including thisNestable
.java.lang.Throwable[]
getThrowables()
Deprecated.Returns thisNestable
and any nestedThrowable
s in an array ofThrowable
s, one element for eachThrowable
.int
indexOfThrowable(java.lang.Class type)
Deprecated.Returns the index, numbered from 0, of the first occurrence of the specified type, or a subclass, in the chain ofThrowable
s.int
indexOfThrowable(java.lang.Class type, int fromIndex)
Deprecated.Returns the index, numbered from 0, of the firstThrowable
that matches the specified type, or a subclass, in the chain ofThrowable
s with an index greater than or equal to the specified index.void
printPartialStackTrace(java.io.PrintWriter out)
Deprecated.Prints the stack trace for this exception only--root cause not included--using the provided writer.void
printStackTrace()
Deprecated.void
printStackTrace(java.io.PrintStream out)
Deprecated.Prints the stack trace of this exception to the specified print stream.void
printStackTrace(java.io.PrintWriter out)
Deprecated.Prints the stack trace of this exception to the specified print writer.
-
-
-
Constructor Detail
-
NestableException
public NestableException()
Deprecated.Constructs a newNestableException
without specified detail message.
-
NestableException
public NestableException(java.lang.String msg)
Deprecated.Constructs a newNestableException
with specified detail message.- Parameters:
msg
- The error message.
-
NestableException
public NestableException(java.lang.Throwable cause)
Deprecated.Constructs a newNestableException
with specified nestedThrowable
.- Parameters:
cause
- the exception or error that caused this exception to be thrown
-
NestableException
public NestableException(java.lang.String msg, java.lang.Throwable cause)
Deprecated.Constructs a newNestableException
with specified detail message and nestedThrowable
.- Parameters:
msg
- the error messagecause
- the exception or error that caused this exception to be thrown
-
-
Method Detail
-
getCause
public java.lang.Throwable getCause()
Deprecated.Returns the reference to the exception or error that caused the exception implementing theNestable
to be thrown.
-
getMessage
public java.lang.String getMessage()
Deprecated.Returns the detail message string of this throwable. If it was created with a null message, returns the following: (cause==null ? null : cause.toString()).- Specified by:
getMessage
in interfaceNestable
- Overrides:
getMessage
in classjava.lang.Throwable
- Returns:
- String message string of the throwable
-
getMessage
public java.lang.String getMessage(int index)
Deprecated.Returns the error message of theThrowable
in the chain ofThrowable
s at the specified index, numbered from 0.- Specified by:
getMessage
in interfaceNestable
- Parameters:
index
- the index of theThrowable
in the chain ofThrowable
s- Returns:
- the error message, or null if the
Throwable
at the specified index in the chain does not contain a message
-
getMessages
public java.lang.String[] getMessages()
Deprecated.Returns the error message of this and any nestedThrowable
s in an array of Strings, one element for each message. AnyThrowable
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 theNestable.getThrowableCount()
operation.- Specified by:
getMessages
in interfaceNestable
- Returns:
- the error messages
-
getThrowable
public java.lang.Throwable getThrowable(int index)
Deprecated.Returns theThrowable
in the chain ofThrowable
s at the specified index, numbered from 0.- Specified by:
getThrowable
in interfaceNestable
- Parameters:
index
- the index, numbered from 0, of theThrowable
in the chain ofThrowable
s- Returns:
- the
Throwable
-
getThrowableCount
public int getThrowableCount()
Deprecated.Returns the number of nestedThrowable
s represented by thisNestable
, including thisNestable
.- Specified by:
getThrowableCount
in interfaceNestable
- Returns:
- the throwable count
-
getThrowables
public java.lang.Throwable[] getThrowables()
Deprecated.Returns thisNestable
and any nestedThrowable
s in an array ofThrowable
s, one element for eachThrowable
.- Specified by:
getThrowables
in interfaceNestable
- Returns:
- the
Throwable
s
-
indexOfThrowable
public int indexOfThrowable(java.lang.Class type)
Deprecated.Returns the index, numbered from 0, of the first occurrence of the specified type, or a subclass, in the chain ofThrowable
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 useExceptionUtils.indexOfThrowable(Throwable, Class)
(which is avaiable in all versions of lang).- Specified by:
indexOfThrowable
in interfaceNestable
- Parameters:
type
- the type to find, subclasses match, null returns -1- Returns:
- index of the first occurrence of the type in the chain, or -1 if the type is not found
-
indexOfThrowable
public int indexOfThrowable(java.lang.Class type, int fromIndex)
Deprecated.Returns the index, numbered from 0, of the firstThrowable
that matches the specified type, or a subclass, in the chain ofThrowable
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 useExceptionUtils.indexOfThrowable(Throwable, Class, int)
(which is avaiable in all versions of lang).- Specified by:
indexOfThrowable
in interfaceNestable
- Parameters:
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- Returns:
- index of the first occurrence of the type in the chain, or -1 if the type is not found
-
printStackTrace
public void printStackTrace()
Deprecated.- Overrides:
printStackTrace
in classjava.lang.Throwable
-
printStackTrace
public void printStackTrace(java.io.PrintStream out)
Deprecated.Prints the stack trace of this exception to the specified print stream. Includes information from the exception, if any, which caused this exception.- Specified by:
printStackTrace
in interfaceNestable
- Overrides:
printStackTrace
in classjava.lang.Throwable
- Parameters:
out
-PrintStream
to use for output.
-
printStackTrace
public void printStackTrace(java.io.PrintWriter out)
Deprecated.Prints the stack trace of this exception to the specified print writer. Includes information from the exception, if any, which caused this exception.- Specified by:
printStackTrace
in interfaceNestable
- Overrides:
printStackTrace
in classjava.lang.Throwable
- Parameters:
out
-PrintWriter
to use for output.
-
printPartialStackTrace
public final void printPartialStackTrace(java.io.PrintWriter out)
Deprecated.Prints the stack trace for this exception only--root cause not included--using the provided writer. Used byNestableDelegate
to write individual stack traces to a buffer. The implementation of this method should callsuper.printStackTrace(out);
in most cases.- Specified by:
printPartialStackTrace
in interfaceNestable
- Parameters:
out
- The writer to use.
-
-