Java线程池中的异常消失

来源:互联网 发布:股票基本书籍 知乎 编辑:程序博客网 时间:2024/05/16 04:45

使用ExecutorService.submit()提交的任务会由于线程池自身的保护机制,不会将异常打印到控制台,所以不会看到,有时程序莫名其妙的结束就是因为这种情况

可以这样

Runnable crawlBlog = new Runnable() {    public void run() {        try {            doSomething();        } catch (Exception e) {            //打印一下错误信息,出现异常可以知道错误发生在哪里            e.printStackTrace();        }    }}

或者

不使用submit()使用execute()也可以

原理暂时不知道,先放着

0 0