Thread.getUncaughtExceptionHandler() 方法



描述

Java Thread getUncaughtExceptionHandler() 方法返回當執行緒由於未捕獲異常而突然終止時呼叫的處理器。

宣告

以下是 java.lang.Thread.getUncaughtExceptionHandler() 方法的宣告

public Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()

引數

返回值

此方法不返回任何值。

異常

示例:獲取執行緒的 UncaughtExceptionHandler

以下示例演示了 Java Thread getUncaughtExceptionHandler() 方法的用法。在這個程式中,我們透過實現 Runnable 介面建立了一個執行緒類 AdminThread。在 run 方法中,我們丟擲了一個 RuntimeException。在 main 方法中,我們建立了一個 AdminThread 類的新的執行緒,並使用 setUncaughtExceptionHandler() 方法設定了一個未捕獲異常處理器,該處理器列印引發的異常。現在使用 getUncaughtExceptionHandler(),檢索並列印異常處理器。

使用 start() 方法,我們啟動了執行緒,結果列印在控制檯上。

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();
	  
      /* returns the handler invoked when this thread abruptly 
         terminates due to an uncaught exception. */
      Thread.UncaughtExceptionHandler handler = 
      t.getUncaughtExceptionHandler();
      System.out.println(handler);
   }
}

class AdminThread implements Runnable {

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

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

com.tutorialspoint.ThreadDemo$1@28a418fc
Thread[#21,Thread-0,5,main] throws exception: java.lang.RuntimeException
java_lang_thread.htm
廣告