Java Thread setUncaughtExceptionHandler() 方法



描述

Java Thread setUncaughtExceptionHandler() 方法設定當此執行緒由於未捕獲的異常而突然終止時呼叫的處理程式。

宣告

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

public void setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

引數

eh − 這是用作此執行緒的未捕獲異常處理程式的物件。如果為 null,則此執行緒沒有顯式處理程式。

返回值

此方法不返回值。

異常

SecurityException − 如果當前執行緒不允許修改此執行緒。

示例:為執行緒設定 UncaughtExceptionHandler

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

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

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.