程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java 線程異常處理器,Java線程處理器

Java 線程異常處理器,Java線程處理器

編輯:JAVA綜合教程

Java 線程異常處理器,Java線程處理器


Thread.UncaughtExceptionHandler 是Thread類的一個靜態內部接口,該接口只有一個方法:

void uncaughtException(Thread t, Throwable e),其中t代表出現異常的線程,e代表拋出的異常。

如果線程執行過程中拋出了一個未處理的異常,則會在線程結束前找到對應的未處理異常處理器,調用上面的方法,處理該異常。

Thread 類提供了兩個方法用來設置異常處理器

static setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 為該線程類的所有對象都設置默認的異常處理器。

setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 為指定的線程對象設置異常處理器。

示例如下:

public class UnCaughtExceptionHandlerTest {
    static class UnCaughtExceptionHandler implements Thread.UncaughtExceptionHandler{

        @Override
        public void uncaughtException(Thread t, Throwable e) {
            System.out.println(t + " 異常:" + e);
        }
        
    }
    
    public static void main(String[] args) {
        Thread.currentThread().setUncaughtExceptionHandler(new UnCaughtExceptionHandler());
        
        int a = 5 / 0;
        System.out.println("normal over!");
    }

}

執行結果

Thread[main,5,main] 異常:java.lang.ArithmeticException: / by zero

由上可以看出,與catch不同的是,異常處理器處理異常後,程序並不會繼續執行,所以也不會正常結束。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved