共計 703 個字符,預計需要花費 2 分鐘才能閱讀完成。
Java 主線程可以通過以下幾種方式捕獲子線程的異常:
- 使用 try-catch 語句塊:在子線程的 run() 方法中,可以使用 try-catch 語句塊捕獲異常,并在 catch 塊中處理異常。然后可以在 catch 塊中將異常信息傳遞給主線程。
Thread thread = new Thread(() -> {try {// 子線程的邏輯代碼
} catch (Exception e) {// 異常處理代碼
}
});
thread.start();
- 使用 Thread.UncaughtExceptionHandler 接口:可以為子線程設置一個 UncaughtExceptionHandler 實例,用于捕獲并處理子線程中未被捕獲的異常。在 UncaughtExceptionHandler 的 uncaughtException() 方法中可以處理異常,并將異常信息傳遞給主線程。
Thread thread = new Thread(() -> {// 子線程的邏輯代碼
});
thread.setUncaughtExceptionHandler((t, e) -> {// 異常處理代碼
});
thread.start();
- 使用 Thread.setDefaultUncaughtExceptionHandler() 方法:可以為所有線程設置一個默認的 UncaughtExceptionHandler 實例,用于捕獲并處理所有線程中未被捕獲的異常。
Thread.setDefaultUncaughtExceptionHandler((t, e) -> {// 異常處理代碼
});
無論采用哪種方式,主線程都可以在異常處理代碼中獲取到子線程拋出的異常,并進行相應的處理。
丸趣 TV 網 – 提供最優質的資源集合!
正文完