Java Thread setDefaultUncaughtExceptionHandler() 方法



描述

Java Thread setDefaultUncaughtExceptionHandler() 方法設定預設處理程式,當執行緒由於未捕獲的異常而突然終止且該執行緒未定義其他處理程式時,將呼叫該處理程式。

宣告

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

public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

引數

eh − 這是用作預設未捕獲異常處理程式的物件。如果為 null,則沒有預設處理程式。

返回值

此方法不返回任何值。

異常

SecurityException − 如果存在安全管理器並且它拒絕 RuntimePermission

示例:為執行緒設定預設 UncaughtExceptionHandler

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

使用 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();
   }
}

class adminThread implements Runnable {

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

輸出

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

Thread[#21,Thread-0,5,main] throws exception: java.lang.RuntimeException
java_lang_thread.htm
廣告
© . All rights reserved.