1.采用CountDownLatch来等待线程走完;
2.用AtomicReference 对对象封装的原子性,获得多个线程的异常情况
final CountDownLatch countDownLatch = new CountDownLatch(1);
final AtomicReference exceptionReference = new AtomicReference();
new Thread(new Runnable(){
@Override
public void run() {
try {
}
catch (InitErrorException e) {
exceptionReference.set(e);
}
catch (Exception e) {
exceptionReference.set(new Exception("error!", e));
}
finally {
countDownLatch .countDown();
}
}
}).start();
registryDownLatch.await();
Exception initErrorException = (Exception)exceptionReference.get();
if (initErrorException != null) {
throw Exception;
}