|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.lang.Throwable
java.lang.Error
org.jasig.portal.lang.ChainedError
public class ChainedError
The ChainedError
class has facilities for error
chaining. Throwables which extend this class inherit these
facilities by implementing appropriate constructors.
Field Summary | |
---|---|
private java.lang.Throwable |
mCause
The chained throwable which is the cause. |
private StackTrace[] |
mStackTrace
Cache of the stack trace for the throwable. |
Constructor Summary | |
---|---|
ChainedError()
Constructs an exception with no message and no cause. |
|
ChainedError(java.lang.String message)
Constructs an exception with a message but no cause. |
|
ChainedError(java.lang.String message,
java.lang.Throwable cause)
Constructs a new exception instance with a message and a cause. |
|
ChainedError(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 |
---|
private java.lang.Throwable mCause
private StackTrace[] mStackTrace
Constructor Detail |
---|
public ChainedError()
public ChainedError(java.lang.String message)
message
- exception messagepublic ChainedError(java.lang.Throwable cause)
cause
- underlying cause of the exceptionpublic ChainedError(java.lang.String message, java.lang.Throwable cause)
message
- exception messagecause
- underlying cause of the exceptionMethod Detail |
---|
public java.lang.Throwable getCause()
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.
getCause
in class java.lang.Throwable
null
if not setpublic java.lang.String getLocalizedMessage()
getLocalizedMessage
in class java.lang.Throwable
public void printStackTrace()
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:
This example was produced by running the program:java.lang.NullPointerException at MyClass.mash(MyClass.java:9) at MyClass.crunch(MyClass.java:6) at MyClass.main(MyClass.java:3)
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 moreNote 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
in class java.lang.Throwable
public void printStackTrace(java.io.PrintStream stream)
printStackTrace
in class java.lang.Throwable
stream
- PrintStream
to use for output
java.lang.NullPointerException
- if stream is null
public void printStackTrace(java.io.PrintWriter stream)
printStackTrace
in class java.lang.Throwable
stream
- PrintWriter
to use for output
java.lang.NullPointerException
- if stream is null
private StackTrace[] getOurStackTrace0()
private StackTrace[] getOurStackTraceInPre1_4()
private void initCause()
null
out the 1.4 cause to ensure serialized
exceptions are properly reconstructed.
private void printStackTraceAsCause(java.io.PrintStream stream, StackTrace[] causedTrace)
stream
- stream to which stack trace should be writtencausedTrace
- stack trace to write to streamprivate void printStackTraceAsCause(java.io.PrintWriter stream, StackTrace[] causedTrace)
stream
- stream to which stack trace should be writtencausedTrace
- stack trace to write to stream
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |