您的位置:首页 > 编程语言 > Java开发

Java 线程异常处理器

2016-03-25 12:31 330 查看
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不同的是,异常处理器处理异常后,程序并不会继续执行,所以也不会正常结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: