public class WrappedRuntimeException extends RuntimeException
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
equals(Object obj)
Indicates whether some other object is "equal to" this one. 
 | 
Throwable | 
getCause()
Returns the cause of this throwable or  
null if the
 cause is nonexistent or unknown. | 
String | 
getLocalizedMessage()
Creates a localized description of this throwable. 
 | 
String | 
getMessage()
Returns the detail message string of this throwable. 
 | 
StackTraceElement[] | 
getStackTrace()
Provides programmatic access to the stack trace information printed by
  
Throwable.printStackTrace(). | 
int | 
hashCode()
Returns a hash code value for the object. 
 | 
void | 
printStackTrace()
Prints this throwable and its backtrace to the
 standard error stream. 
 | 
void | 
printStackTrace(PrintStream s)
Prints this throwable and its backtrace to the specified print stream. 
 | 
void | 
printStackTrace(PrintWriter s)
Prints this throwable and its backtrace to the specified
 print writer. 
 | 
void | 
setStackTrace(StackTraceElement[] stackTrace)
Sets the stack trace elements that will be returned by
  
Throwable.getStackTrace() and printed by Throwable.printStackTrace()
 and related methods. | 
String | 
toString()
Returns a short description of this throwable. 
 | 
addSuppressed, fillInStackTrace, getSuppressed, initCausepublic void printStackTrace()
java.lang.ThrowableThrowable 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 {
 }
 
 As of release 7, the platform supports the notion of
 suppressed exceptions (in conjunction with the try-with-resources statement). Any exceptions that were
 suppressed in order to deliver an exception are printed out
 beneath the stack trace.  The format of this information
 depends on the implementation, but the following example may be
 regarded as typical:
 
 Exception in thread "main" java.lang.Exception: Something happened
  at Foo.bar(Foo.java:10)
  at Foo.main(Foo.java:5)
  Suppressed: Resource$CloseFailException: Resource ID = 0
          at Resource.close(Resource.java:26)
          at Foo.bar(Foo.java:9)
          ... 1 more
 
 Note that the "... n more" notation is used on suppressed exceptions
 just at it is used on causes. Unlike causes, suppressed exceptions are
 indented beyond their "containing exceptions."
 An exception can have both a cause and one or more suppressed exceptions:
 Exception in thread "main" java.lang.Exception: Main block
  at Foo3.main(Foo3.java:7)
  Suppressed: Resource$CloseFailException: Resource ID = 2
          at Resource.close(Resource.java:26)
          at Foo3.main(Foo3.java:5)
  Suppressed: Resource$CloseFailException: Resource ID = 1
          at Resource.close(Resource.java:26)
          at Foo3.main(Foo3.java:5)
 Caused by: java.lang.Exception: I did it
  at Foo3.main(Foo3.java:8)
 
 Likewise, a suppressed exception can have a cause:
 
 Exception in thread "main" java.lang.Exception: Main block
  at Foo4.main(Foo4.java:6)
  Suppressed: Resource2$CloseFailException: Resource ID = 1
          at Resource2.close(Resource2.java:20)
          at Foo4.main(Foo4.java:5)
  Caused by: java.lang.Exception: Rats, you caught me
          at Resource2$CloseFailException.<init>(Resource2.java:45)
          ... 2 more
 printStackTrace in class Throwablepublic void printStackTrace(PrintStream s)
java.lang.ThrowableprintStackTrace in class Throwables - PrintStream to use for outputpublic void printStackTrace(PrintWriter s)
java.lang.ThrowableprintStackTrace in class Throwables - PrintWriter to use for outputpublic Throwable getCause()
java.lang.Throwablenull if the
 cause is nonexistent or unknown.  (The cause is the throwable that
 caused this throwable to get thrown.)
 This implementation returns the cause that was supplied via one of
 the constructors requiring a Throwable, or that was set after
 creation with the Throwable.initCause(Throwable) method.  While it is
 typically unnecessary to override this method, a subclass can override
 it to return a cause set by some other means.  This is appropriate for
 a "legacy chained throwable" that predates the addition of chained
 exceptions to Throwable.  Note that it is not
 necessary to override any of the PrintStackTrace methods,
 all of which invoke the getCause method to determine the
 cause of a throwable.
public String getLocalizedMessage()
java.lang.ThrowablegetMessage().getLocalizedMessage in class Throwablepublic String getMessage()
java.lang.ThrowablegetMessage in class ThrowableThrowable instance
          (which may be null).public StackTraceElement[] getStackTrace()
java.lang.ThrowableThrowable.printStackTrace().  Returns an array of stack trace elements,
 each representing one stack frame.  The zeroth element of the array
 (assuming the array's length is non-zero) represents the top of the
 stack, which is the last method invocation in the sequence.  Typically,
 this is the point at which this throwable was created and thrown.
 The last element of the array (assuming the array's length is non-zero)
 represents the bottom of the stack, which is the first method invocation
 in the sequence.
 Some virtual machines may, under some circumstances, omit one
 or more stack frames from the stack trace.  In the extreme case,
 a virtual machine that has no stack trace information concerning
 this throwable is permitted to return a zero-length array from this
 method.  Generally speaking, the array returned by this method will
 contain one element for every frame that would be printed by
 printStackTrace.  Writes to the returned array do not
 affect future calls to this method.
getStackTrace in class Throwablepublic void setStackTrace(StackTraceElement[] stackTrace)
java.lang.ThrowableThrowable.getStackTrace() and printed by Throwable.printStackTrace()
 and related methods.
 This method, which is designed for use by RPC frameworks and other
 advanced systems, allows the client to override the default
 stack trace that is either generated by Throwable.fillInStackTrace()
 when a throwable is constructed or deserialized when a throwable is
 read from a serialization stream.
 If the stack trace of this Throwable is not
 writable, calling this method has no effect other than
 validating its argument.
setStackTrace in class ThrowablestackTrace - the stack trace elements to be associated with
 this Throwable.  The specified array is copied by this
 call; changes in the specified array after the method invocation
 returns will have no affect on this Throwable's stack
 trace.public String toString()
java.lang.ThrowableThrowable.getLocalizedMessage()
      method
 getLocalizedMessage returns null, then just
 the class name is returned.public boolean equals(Object obj)
java.lang.Object
 The equals method implements an equivalence relation
 on non-null object references:
 
x, x.equals(x) should return
     true.
 x and y, x.equals(y)
     should return true if and only if
     y.equals(x) returns true.
 x, y, and z, if
     x.equals(y) returns true and
     y.equals(z) returns true, then
     x.equals(z) should return true.
 x and y, multiple invocations of
     x.equals(y) consistently return true
     or consistently return false, provided no
     information used in equals comparisons on the
     objects is modified.
 x,
     x.equals(null) should return false.
 
 The equals method for class Object implements
 the most discriminating possible equivalence relation on objects;
 that is, for any non-null reference values x and
 y, this method returns true if and only
 if x and y refer to the same object
 (x == y has the value true).
 
 Note that it is generally necessary to override the hashCode
 method whenever this method is overridden, so as to maintain the
 general contract for the hashCode method, which states
 that equal objects must have equal hash codes.
equals in class Objectobj - the reference object with which to compare.true if this object is the same as the obj
          argument; false otherwise.Object.hashCode(), 
HashMappublic int hashCode()
java.lang.ObjectHashMap.
 
 The general contract of hashCode is:
 
hashCode method
     must consistently return the same integer, provided no information
     used in equals comparisons on the object is modified.
     This integer need not remain consistent from one execution of an
     application to another execution of the same application.
 equals(Object)
     method, then calling the hashCode method on each of
     the two objects must produce the same integer result.
 Object.equals(java.lang.Object)
     method, then calling the hashCode method on each of the
     two objects must produce distinct integer results.  However, the
     programmer should be aware that producing distinct integer results
     for unequal objects may improve the performance of hash tables.
 
 As much as is reasonably practical, the hashCode method defined by
 class Object does return distinct integers for distinct
 objects. (This is typically implemented by converting the internal
 address of the object into an integer, but this implementation
 technique is not required by the
 Java™ programming language.)
hashCode in class ObjectObject.equals(java.lang.Object), 
System.identityHashCode(java.lang.Object)