线程异常处理器
当线程抛出未捕获的异常时jvm的处理
1 查找线程对象的未捕获异常处理器
2 查找线程组对象的未捕获异常处理器
3 默认的未捕获异常处理器
package chapter1;
public class ExceptHandler {
public static void main(String[] args){
Thread thread = new Thread(new MyRunner());
//注册异常处理器
thread.setUncaughtExceptionHandler(new ExcpetRealHandler());
thread.start();
}
}
class MyRunner implements Runnable{
public void run() {
int a = Integer.parseInt("ab");
}
}
class ExcpetRealHandler implements Thread.UncaughtExceptionHandler{
/**
* 捕获运行时异常
*
* @param t
* @param e
*/
public void uncaughtException(Thread t, Throwable e) {
System.out.println("my UncaughtExceptionHandler");
System.out.printf("name=%s,stat=%s,id:=%d\n",t.getName(),t.getState(), t.getId());
e.printStackTrace(System.out);
}
}