Java Thread setUncaughtExceptionHandler() Method



Description

The Java Thread setUncaughtExceptionHandler() method set the handler invoked when this thread abruptly terminates due to an uncaught exception.

Declaration

Following is the declaration for java.lang.Thread.setUncaughtExceptionHandler() method

public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

Parameters

eh − This is the object to use as this thread's uncaught exception handler. If null then this thread has no explicit handler.

Return Value

This method does not return any value.

Exception

SecurityException − if the current thread is not allowed to modify this thread.

Example: Setting UncaughtExceptionHandler for a Thread

The following example shows the usage of Java Thread setUncaughtExceptionHandler() method. In this program, we've created a thread class AdminThread by implementing Runnable interface. In run method, we're throwing a RuntimeException. In main method, we've created a new thread of AdminThread class and using setUncaughtExceptionHandler() method, we've set a uncaught exception handler which prints the exception raised.

Using start() method, we've started the thread and result is printed on the console.

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String[] args) {

      Thread t = new Thread(new AdminThread());
      t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {

         public void uncaughtException(Thread t, Throwable e) {
            System.out.println(t + " throws exception: " + e);
         }
      });
      // this will call run() function
      t.start();
   }
}

class AdminThread implements Runnable {

   public void run() {
      throw new RuntimeException();
   }
} 

Output

Let us compile and run the above program, this will produce the following result −

Thread[#21,Thread-0,5,main] throws exception: java.lang.RuntimeException
java_lang_thread.htm
Advertisements