如何在 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
廣告