|
||||||||||
| 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 exception
public ChainedError(java.lang.String message,
java.lang.Throwable cause)
message - exception messagecause - underlying cause of the exception| Method 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.Throwablenull if not setpublic java.lang.String getLocalizedMessage()
getLocalizedMessage in class java.lang.Throwablepublic 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:
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 in class java.lang.Throwablepublic void printStackTrace(java.io.PrintStream stream)
printStackTrace in class java.lang.Throwablestream - PrintStream to use for output
java.lang.NullPointerException - if stream is nullpublic void printStackTrace(java.io.PrintWriter stream)
printStackTrace in class java.lang.Throwablestream - PrintWriter to use for output
java.lang.NullPointerException - if stream is nullprivate 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 stream
private 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 | |||||||||