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)