java编程思想-并发之线程异常处理器
2017-08-07 21:55
597 查看
/** * * @author wenruo * @date 2017-8-7 * */ class ExceptionThread implements Runnable{ @Override public void run() { Thread t=Thread.currentThread(); System.out.println(" run by "+t); System.out.println(" eh = "+t.getUncaughtExceptionHandler()); throw new RuntimeException(); } } class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler{ @Override public void uncaughtException(Thread t, Throwable e) { System.out.println(t.getName()+"---->"+e); } } class HandlerThreadFactory implements ThreadFactory{ @Override public Thread newThread(Runnable r) { System.out.println(this+" creating new Thread"); Thread thread=new Thread(r); System.out.println(" created "+thread); //未捕获的异常通过uncaughtException来捕获 //专有的异常处理器的优先级高于默认异常处理器 thread.setUncaughtExceptionHandler(new MyUncaughtExceptionHandler()); System.out.println(" eh="+thread.getUncaughtExceptionHandler()); return thread; } } public class ThreadExceptionTest { public static void main(String[] args) { //设置默认未捕获异常处理器 Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler()); ExecutorService service=Executors.newCachedThreadPool(new HandlerThreadFactory()); service.execute(new ExceptionThread()); } }
相关文章推荐
- (38)21.3.8 线程本地存储---Java编程思想之并发笔记
- Java并发编程示例(八):处理线程的非受检异常
- java编程思想笔记-并发之线程加入
- java编程思想笔记-并发之线程协作(三)
- java编程思想之并发(线程之间的协作)
- Java并发编程:进程和线程之由来__进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- JAVA 并发编程随笔【七】线程安全与共享资源
- JAVA 并发编程随笔【七】线程安全与共享资源
- Java 编程下的并发线程之间的同步代码块死锁
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- 【Java并发编程】之十:使用wait/notify/notifyAll实现线程间通信的几点重要说明(r)
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)
- Java高并发编程:线程锁技术
- 中断线程(java并发编程第7章)
- java并发编程:线程安全管理类--原子操作类--AtomicBoolean
- Java 编程下的并发线程之间的同步代码块死锁
- (十六)java并发编程--线程的死锁解决方案(生产者和消费者几种实现方式)
- 【Java并发编程】之十一:线程间通信中notify通知的遗漏(含代码)