Thread getDefaultUncaughtExceptionHandler() 方法



描述

Java Thread getDefaultUncaughtExceptionHandler() 方法返回當執行緒因未捕獲異常而突然終止時呼叫的預設處理程式。如果返回值為 null,則沒有預設處理程式。

宣告

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

public static Thread.UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()

引數

返回值

此方法不返回值。

異常

示例:獲取執行緒的 DefaultUncaughtExceptionHandler

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

使用 start() 方法啟動執行緒,結果將列印到控制檯。

package com.tutorialspoint;

public class ThreadDemo {

   public static void main(String[] args) {

      Thread t = new Thread(new AdminThread());
      t.setDefaultUncaughtExceptionHandler(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.getDefaultUncaughtExceptionHandler();
      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
廣告
© . All rights reserved.