uPortal 2.4.1
API Documentation

org.jasig.portal.lang
Class ChainedException

java.lang.Object
  extended byjava.lang.Throwable
      extended byjava.lang.Exception
          extended byorg.jasig.portal.lang.ChainedException
All Implemented Interfaces:
ChainedThrowable, java.io.Serializable

public class ChainedException
extends java.lang.Exception
implements ChainedThrowable

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

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

Constructor Summary
ChainedException()
          Constructs an exception with no message and no cause.
ChainedException(java.lang.String message)
          Constructs an exception with a message but no cause.
ChainedException(java.lang.String message, java.lang.Throwable cause)
          Constructs a new exception instance with a message and a cause.
ChainedException(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.
 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.
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getMessage, getStackTrace, initCause, setStackTrace, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChainedException

public ChainedException()
Constructs an exception with no message and no cause.


ChainedException

public ChainedException(java.lang.String message)
Constructs an exception with a message but no cause. The message should be an internationalized message.

Parameters:
message - exception message

ChainedException

public ChainedException(java.lang.Throwable cause)
Constructs a new exception instance with no message but a cause.

Parameters:
cause - underlying cause of the exception

ChainedException

public ChainedException(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.

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.

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 {
 }
 


printStackTrace

public void printStackTrace(java.io.PrintStream stream)
Prints this throwable and its backtrace to the specified print stream.

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.

Parameters:
stream - PrintWriter to use for output
Throws:
java.lang.NullPointerException - if stream is null

uPortal 2.4.1
API Documentation