如何在 Java 中使用 UncaughtExceptionHandler 來處理異常?


UncaughtExceptionHandler 是一個位於Thread 類的內部介面。當主執行緒由於未捕獲的異常而即將終止時,java 虛擬機器將呼叫該執行緒的UncaughtExceptionHandler ,為其提供機會執行一些錯誤處理操作,例如將**異常記錄到檔案**或**將日誌上傳到伺服器**,然後再將其終止。我們可以設定一個預設異常處理程式,它將為所有未處理的異常呼叫。它在Java 5 版本中被引入。

可以使用**java.lang.Thread**類的以下靜態方法設定此處理程式。

public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh)

我們必須提供介面Thread.UncaughtExceptionHandler的實現,該介面只有一個方法。

語法

@FunctionalInterface
public interface UncaughtExceptionHandler {
   void uncaughtException(Thread t, Throwable e);
}

示例

線上演示

public class UncaughtExceptionHandlerTest {
   public static void main(String[] args) throws Exception {
      Thread.setDefaultUncaughtExceptionHandler(new MyHandler());
      throw new Exception("Test Exception");
   }
   private static final class MyHandler implements Thread.UncaughtExceptionHandler {
      @Override
      public void uncaughtException(Thread t, Throwable e) {
         System.out.println("The Exception Caught: " + e);
      }
   }
}

輸出

The Exception Caught: java.lang.Exception: Test Exception

更新於: 30-Jul-2019

887 次觀看

啟動你的 職業生涯

透過完成課程獲得認證

入門
廣告