NodeManager源码阅读 Thread.setDefaultUncaughtExceptionHandler

来源:互联网 发布:2014年流行的网络歌曲 编辑:程序博客网 时间:2024/06/03 19:27

NodeManager源码

阅读NodeManager源码的时候注意到一个很有意思的java代码,如下

  public static void main(String[] args) throws IOException {    Thread.setDefaultUncaughtExceptionHandler(new YarnUncaughtExceptionHandler());    StringUtils.startupShutdownMessage(NodeManager.class, args, LOG);    NodeManager nodeManager = new NodeManager();    Configuration conf = new YarnConfiguration();    new GenericOptionsParser(conf, args);    nodeManager.initAndStartNodeManager(conf, false);  }

测试

下面的测试来自于确认在多线程提交任务的场景下是否可以生效。因为另外一个文章里面提到说executorservice.submit的场景下不生效。但是其实还是可以生效的。
提到的文章:http://blog.csdn.net/u013256816/article/details/50417822

public class MyDefaultUncaughtExceptionHandler {    static class MyUncauthExceptionHandler implements Thread.UncaughtExceptionHandler{        @Override        public void uncaughtException(Thread t, Throwable e) {            System.out.println("UncaughtException:" + t.getName() + " " + e.getMessage());        }    }    public static void main(String args[]){        Thread.setDefaultUncaughtExceptionHandler(new MyUncauthExceptionHandler());        ExecutorService es = Executors.newCachedThreadPool();        es.execute(new Runnable() {            @Override            public void run() {                int i = 2/0;            }        });        es.shutdown();    }}