Java线程类Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()方法(带示例)

线程类Thread.UncaughtExceptionHandler getUncaughtExceptionHandler()

  • 包java.lang.Thread.getUncaughtExceptionHandler()中提供了此方法。

  • 如果任何线程由于未捕获的异常而异常终止(如果引发任何异常),则此方法用于返回调用的处理程序。

  • 此方法不是静态的,因此也无法使用类名访问此方法。

  • 此方法的返回类型为Thread.UncaughtExceptionHandler,它提供当线程由于未捕获的异常而异常终止时调用的处理程序。

  • 如果此方法未引发任何异常(意味着正常终止线程),则此方法返回null。

语法:

    Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(){
    }

参数:

在Thread方法中,我们不传递任何对象作为参数。

返回值:

此方法的返回类型为Thread.UncaughtExceptionHandler,当突然终止线程时,它将返回未捕获异常的处理程序;否则,如果没有错误意味着正常终止,则返回null。

Java程序演示getUncaughtExceptionHandler()方法示例

/*  We will use Thread class methods so we are importing 
    the package but it is not mandate 
    because it is imported by default
*/

import java.lang.Thread;

class UncaughtExceptionHandlerClass extends Thread {

    static Thread th1;

    //覆盖run()Thread类
    public void run() {

        //显示最终用户的消息 	
        System.out.println("The name of this thread is " + " " + Thread.currentThread().getName());

        // getUncaughtExceptionHandler()将返回处理程序 
        //对于线程异常终止时未捕获的异常 
        //并创建Thread.UncaughtExceptionHandler的引用
        Thread.UncaughtExceptionHandler ueh = th1.getUncaughtExceptionHandler();

        System.out.println("The handler for the thread is = " + ueh);
    }

    public static void main(String[] args) {
        //创建一个UncaughtExceptionHandlerClass类的对象
        UncaughtExceptionHandlerClass uehc =
            new UncaughtExceptionHandlerClass();

        //创建一个Thread类的对象
        th1 = new Thread(uehc);

        //线程类start()方法将调用,并且最终 
        th1.start();
    }
}

输出结果

E:\Programs>javac UncaughtExceptionHandlerClass.java

E:\Programs>java UncaughtExceptionHandlerClass
The name of this thread is  Thread-1
The handler for the thread is = java.lang.ThreadGroup[name=main,maxpri=10]
猜你喜欢