Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jasig.portal.lang
Class ChainedRuntimeException

    java.lang.Object
      java.lang.Throwable
          java.lang.Exception
              java.lang.RuntimeException
                  org.jasig.portal.lang.ChainedRuntimeException

All Implemented Interfaces:
  java.io.Serializable, ChainedThrowable

    public class ChainedRuntimeException

extends java.lang.RuntimeException
implements ChainedThrowable

The `ChainedRuntimeException` class has facilities for exception chaining. Exceptions which extend this class inherit these facilities by implementing appropriate constructors.

Version:
  "$Revision: 1.3 $"
Author:
  Jan Nielsen
See Also:
  Serialized Form

Field Summary
`private java.lang.Throwable` | `mCause` The chained exception which is the cause of this exception.
`private StackTrace[]` | `mStackTrace` Cache of the stack trace for the exception.

Constructor Summary
`ChainedRuntimeException()` Constructs an exception with no message and no cause.
`ChainedRuntimeException(java.lang.String message)` Constructs an exception with a message but no cause.
`ChainedRuntimeException(java.lang.String message, java.lang.Throwable cause)` Constructs a new exception instance with a message and a cause.
`ChainedRuntimeException(java.lang.Throwable cause)` Constructs a new exception instance with no message but a cause.

Method Summary
`java.lang.Throwable` | `getCause()` Returns the cause for this `Throwable` or `null`.
`java.lang.String` | `getLocalizedMessage()` Translate the error message to a locale specific error message.
`private StackTrace[]` | `getOurStackTrace0()` Returns an array of stack trace objects representing the current stack.
`private StackTrace[]` | `getOurStackTraceInPre1_4()` In a pre-1.4 JVM, create the stack trace elements by first constructing the normal error message and then removing the error message from the stream.
`private void` | `initCause()` Always `null` out the 1.4 cause to ensure serialized exceptions are properly reconstructed.
`void` | `printStackTrace()` Prints this throwable and its backtrace to the standard error stream.
`void` | `printStackTrace(java.io.PrintStream stream)` Prints this throwable and its backtrace to the specified print stream.
`void` | `printStackTrace(java.io.PrintWriter stream)` Prints this throwable and its backtrace to the specified print writer.
`private void` | `printStackTraceAsCause(java.io.PrintStream stream, StackTrace[] causedTrace)` Print our stack trace as a cause for the specified stack trace.
`private void` | `printStackTraceAsCause(java.io.PrintWriter stream, StackTrace[] causedTrace)` Print our stack trace as a cause for the specified stack trace.

Methods inherited from class java.lang.Throwable
`fillInStackTrace, getMessage, getStackTrace, initCause, setStackTrace, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### mCause

    private java.lang.Throwable mCause

  The chained exception which is the cause of this exception.

### mStackTrace

    private StackTrace[] mStackTrace

  Cache of the stack trace for the exception.

Constructor Detail

### ChainedRuntimeException

    public ChainedRuntimeException()

  Constructs an exception with no message and no cause.

### ChainedRuntimeException

    public ChainedRuntimeException(java.lang.String message)

  Constructs an exception with a message but no cause. The message should be an internationalized message.

  Parameters:
    `message` - exception message

### ChainedRuntimeException

    public ChainedRuntimeException(java.lang.Throwable cause)

  Constructs a new exception instance with no message but a cause.

  Parameters:
    `cause` - underlying cause of the exception

### ChainedRuntimeException

    public ChainedRuntimeException(java.lang.String message,
                                   java.lang.Throwable cause)

  Constructs a new exception instance with a message and a cause. The message should be an internationalized message.

  Parameters:
    `message` - exception message
    `cause` - underlying cause of the exception

Method Detail

### getCause

    public java.lang.Throwable getCause()

  Returns the cause for this `Throwable` or `null`. The cause is mean for diagnostic purposes only; Clients should not try to use the cause for additional error handling since that would build an inappropriate subsystem dependency.

  Overrides:
    `getCause` in class `java.lang.Throwable`
  Returns:
    throwable associated with this object, or `null` if not set

### getLocalizedMessage

    public java.lang.String getLocalizedMessage()

  Translate the error message to a locale specific error message.

  Overrides:
    `getLocalizedMessage` in class `java.lang.Throwable`
  Returns:
    localized error message

### printStackTrace

    public void printStackTrace()

  Prints this throwable and its backtrace to the standard error stream. This method prints a stack trace for this `Throwable` object on the error output stream that is the value of the field `System.err`. The first line of output contains the result of the `Throwable.toString()` method for this object. Remaining lines represent data previously recorded by the method `Throwable.fillInStackTrace()`. The format of this information depends on the implementation, but the following example may be regarded as typical:

  >      java.lang.NullPointerException
  >              at MyClass.mash(MyClass.java:9)
  >              at MyClass.crunch(MyClass.java:6)
  >              at MyClass.main(MyClass.java:3)

  This example was produced by running the program:

       class MyClass {
           public static void main(String[] args) {
               crunch(null);
           }
           static void crunch(int[] a) {
               mash(a);
           }
           static void mash(int[] b) {
               System.out.println(b[0]);
           }
       }

  The backtrace for a throwable with an initialized, non-null cause should generally include the backtrace for the cause. The format of this information depends on the implementation, but the following example may be regarded as typical:

       HighLevelException: MidLevelException: LowLevelException
               at Junk.a(Junk.java:13)
               at Junk.main(Junk.java:4)
       Caused by: MidLevelException: LowLevelException
               at Junk.c(Junk.java:23)
               at Junk.b(Junk.java:17)
               at Junk.a(Junk.java:11)
               ... 1 more
       Caused by: LowLevelException
               at Junk.e(Junk.java:30)
               at Junk.d(Junk.java:27)
               at Junk.c(Junk.java:21)
               ... 3 more

  Note the presence of lines containing the characters `"..."`. These lines indicate that the remainder of the stack trace for this exception matches the indicated number of frames from the bottom of the stack trace of the exception that was caused by this exception (the "enclosing" exception). This shorthand can greatly reduce the length of the output in the common case where a wrapped exception is thrown from same method as the "causative exception" is caught. The above example was produced by running the program:

       public class Junk {
           public static void main(String args[]) {
               try {
                   a();
               } catch(HighLevelException e) {
                   e.printStackTrace();
               }
           }
           static void a() throws HighLevelException {
               try {
                   b();
               } catch(MidLevelException e) {
                   throw new HighLevelException(e);
               }
           }
           static void b() throws MidLevelException {
               c();
           }
           static void c() throws MidLevelException {
               try {
                   d();
               } catch(LowLevelException e) {
                   throw new MidLevelException(e);
               }
           }
           static void d() throws LowLevelException {
              e();
           }
           static void e() throws LowLevelException {
               throw new LowLevelException();
           }
       }

       class HighLevelException extends Exception {
           HighLevelException(Throwable cause) { super(cause); }
       }

       class MidLevelException extends Exception {
           MidLevelException(Throwable cause)  { super(cause); }
       }

       class LowLevelException extends Exception {
       }

  Overrides:
    `printStackTrace` in class `java.lang.Throwable`

### printStackTrace

    public void printStackTrace(java.io.PrintStream stream)

  Prints this throwable and its backtrace to the specified print stream.

  Overrides:
    `printStackTrace` in class `java.lang.Throwable`
  Parameters:
    `stream` - `PrintStream` to use for output
  Throws:
    `java.lang.NullPointerException` - if stream is `null`

### printStackTrace

    public void printStackTrace(java.io.PrintWriter stream)

  Prints this throwable and its backtrace to the specified print writer.

  Overrides:
    `printStackTrace` in class `java.lang.Throwable`
  Parameters:
    `stream` - `PrintWriter` to use for output
  Throws:
    `java.lang.NullPointerException` - if stream is `null`

### getOurStackTrace0

    private StackTrace[] getOurStackTrace0()

  Returns an array of stack trace objects representing the current stack.

  Returns:
    array of stack trace elements

### getOurStackTraceInPre1_4

    private StackTrace[] getOurStackTraceInPre1_4()

  In a pre-1.4 JVM, create the stack trace elements by first constructing the normal error message and then removing the error message from the stream.

  Returns:
    array of stack trace elements

### initCause

    private void initCause()

  Always `null` out the 1.4 cause to ensure serialized exceptions are properly reconstructed.

### printStackTraceAsCause

    private void printStackTraceAsCause(java.io.PrintStream stream,
                                        StackTrace[] causedTrace)

  Print our stack trace as a cause for the specified stack trace.

  Parameters:
    `stream` - stream to which stack trace should be written
    `causedTrace` - stack trace to write to stream

### printStackTraceAsCause

    private void printStackTraceAsCause(java.io.PrintWriter stream,
                                        StackTrace[] causedTrace)

  Print our stack trace as a cause for the specified stack trace.

  Parameters:
    `stream` - stream to which stack trace should be written
    `causedTrace` - stack trace to write to stream

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD