使用ExecutorService.submit()提交的任務會由於線程池自身的保護機制,不會將異常打印到控制檯,所以不會看到,有時程序莫名其妙的結束就是因爲這種情況
可以這樣
Runnable crawlBlog = new Runnable() {
public void run() {
try {
doSomething();
} catch (Exception e) {
//打印一下錯誤信息,出現異常可以知道錯誤發生在哪裏
e.printStackTrace();
}
}
}
或者
不使用submit()使用execute()也可以
原理暫時不知道,先放着