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

处理线程异常

2015-03-05 11:11 417 查看
package com.test.concurrent.exception;

import java.lang.Thread.UncaughtExceptionHandler;

/**
* 处理线程运行时异常
*
* @author yli
*/
public class ThreadExceptionTest {

public static void main(String[] args) {
Thread t = new Thread(new ThreadException());

// 在线程 start 启动前设置异常处理器
UncaughtExceptionHandler unExp = new MyThreadException();
t.setUncaughtExceptionHandler(unExp);

t.start();
}

}

/**
* 定义异常处理器,用来处理线程运行时抛出的异常
*/
class MyThreadException implements UncaughtExceptionHandler {

@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("********* 异常处理器捕获到异常 **********");
// 打印哪个线程发生了异常
System.out.println(t.getName());
// 打印异常信息
System.out.println(e.getMessage());

System.out.println("******** 异常处理结束 **************");
}

}

class ThreadException implements Runnable {

/**
* run 方法不允许抛出受检查异常
* 也可以把受检查异常封装成运行时异常抛出
*/
@Override
public void run() {
// 演示除0错误,运行时异常
int a = 10/0;
System.out.println(a);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息