org.apache.commons.lang.exception
Class NestableRuntimeException

java.lang.Object
  extended byjava.lang.Throwable
      extended byjava.lang.Exception
          extended byjava.lang.RuntimeException
              extended byorg.apache.commons.lang.exception.NestableRuntimeException
All Implemented Interfaces:
Nestable, java.io.Serializable
Direct Known Subclasses:
SerializationException, UnhandledException

public class NestableRuntimeException
extends java.lang.RuntimeException
implements Nestable

The base class of all runtime exceptions which can contain other exceptions.

Since:
1.0
Version:
$Id: NestableRuntimeException.java 512889 2007-02-28 18:18:20Z dlr $
Author:
Rafal Krzewski, Daniel L. Rall, Kasper Nielsen, Steven Caswell
See Also:
NestableException, Serialized Form

Field Summary
protected  NestableDelegate delegate
          The helper instance which contains much of the code which we delegate to.
 
Constructor Summary
NestableRuntimeException()
          Constructs a new NestableRuntimeException without specified detail message.
NestableRuntimeException(java.lang.String msg)
          Constructs a new NestableRuntimeException with specified detail message.
NestableRuntimeException(java.lang.String msg, java.lang.Throwable cause)
          Constructs a new NestableRuntimeException with specified detail message and nested Throwable.
NestableRuntimeException(java.lang.Throwable cause)
          Constructs a new NestableRuntimeException 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 Throwables at the specified index, numbered 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. 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 Throwables at the specified index, numbered 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, 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 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).

 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 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).

 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

delegate

protected NestableDelegate delegate
The helper instance which contains much of the code which we delegate to.

Constructor Detail

NestableRuntimeException

public NestableRuntimeException()
Constructs a new NestableRuntimeException without specified detail message.


NestableRuntimeException

public NestableRuntimeException(java.lang.String msg)
Constructs a new NestableRuntimeException with specified detail message.

Parameters:
msg - the error message

NestableRuntimeException

public NestableRuntimeException(java.lang.Throwable cause)
Constructs a new NestableRuntimeException with specified nested Throwable.

Parameters:
cause - the exception or error that caused this exception to be thrown

NestableRuntimeException

public NestableRuntimeException(java.lang.String msg,
                                java.lang.Throwable cause)
Constructs a new NestableRuntimeException with specified detail message and nested Throwable.

Parameters:
msg - the error message
cause - the exception or error that caused this exception to be thrown
Method Detail

getCause

public java.lang.Throwable getCause()

Specified by:
getCause in interface Nestable

getMessage

public java.lang.String getMessage()
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 interface Nestable
Returns:
String message string of the throwable

getMessage

public java.lang.String getMessage(int index)
Returns the error message of the Throwable in the chain of Throwables at the specified index, numbered from 0.

Specified by:
getMessage in interface Nestable
Parameters:
index - the index of the Throwable in the chain of Throwables
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()
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.

Specified by:
getMessages in interface Nestable
Returns:
the error messages

getThrowable

public java.lang.Throwable getThrowable(int index)
Returns the Throwable in the chain of Throwables at the specified index, numbered from 0.

Specified by:
getThrowable in interface Nestable
Parameters:
index - the index, numbered from 0, of the Throwable in the chain of Throwables
Returns:
the Throwable

getThrowableCount

public int getThrowableCount()
Returns the number of nested Throwables represented by this Nestable, including this Nestable.

Specified by:
getThrowableCount in interface Nestable
Returns:
the throwable count

getThrowables

public java.lang.Throwable[] getThrowables()
Returns this Nestable and any nested Throwables in an array of Throwables, one element for each Throwable.

Specified by:
getThrowables in interface Nestable
Returns:
the Throwables

indexOfThrowable

public 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 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).

Specified by:
indexOfThrowable in interface Nestable
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)
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 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).

Specified by:
indexOfThrowable in interface Nestable
Parameters:
type - the type to find, subclasses match, null returns -1
fromIndex - 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()


printStackTrace

public void printStackTrace(java.io.PrintStream out)

Specified by:
printStackTrace in interface Nestable

printStackTrace

public void printStackTrace(java.io.PrintWriter out)

Specified by:
printStackTrace in interface Nestable

printPartialStackTrace

public final 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.

Specified by:
printPartialStackTrace in interface Nestable
Parameters:
out - The writer to use.


Copyright 2001-2008 The Apache Software Foundation. All Rights Reserved.