Java Throwable Class
Introduction
The Java Throwable class is the superclass of all errors and exceptions in the Java language. Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement.
Class Declaration
Following is the declaration for java.lang.Throwable class −
public class Throwable
extends Object
implements Serializable
Class constructors
| Sr.No. | Constructor & Description |
|---|---|
| 1 | Throwable() This constructs a new throwable with null as its detail message. |
| 2 | Throwable(String message) This constructs a new throwable with the specified detail message. |
| 3 | Throwable(String message, Throwable cause) This constructs a new throwable with the specified detail message and cause. |
| 4 | Throwable(Throwable cause) This constructs a new throwable with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause). |
Class methods
Methods inherited
This class inherits methods from the following classes −
- java.lang.Object
Example: Printing Stacktrace of Throwable
The following example shows the usage of Java Throwable printStackTrace() method. We've defined a method raiseException() which throws a Throwable after setting the Stacktrace. In main method, raiseException() method is called and in catch block exception stack trace is retrieved and printed using printStackTrace() method.
package com.tutorialspoint;
public class ThrowableDemo {
public static void main(String[] args) {
try {
raiseException();
} catch(Throwable e) {
// prints stacktrace for this Throwable Object
e.printStackTrace();
}
}
public static void raiseException() throws Throwable {
Throwable t = new Throwable("This is new Exception...");
StackTraceElement[] trace = new StackTraceElement[] {
new StackTraceElement("ClassName","methodName","fileName",5)
};
// sets the stack trace elements
t.setStackTrace(trace);
throw t;
}
}
Output
Let us compile and run the above program, this will produce the following result −
java.lang.Throwable: This is new Exception... at ClassName.methodName(fileName:5)