Java 理论与实践: 处理 InterruptedException
(www.ibm.com)
natsu
積分 0
看來這樣寫是不好的:
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
比較好的作法應該是把 InterruptedException 往外丟,讓程式儘快終止:
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw e;
}
若不能丟出 InterruptedException,至少也要呼叫 Thread.currentThread().interrupt();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
IngramChen
積分 0
打開 IDE search InterruptedException
就會發現一堆地方沒加 Thread.currentThread().interrupt();
natsu
積分 0
目前看起來也只有在巢狀 loop 中會有影響... 請看 Why do we have to interrupt the thread again? 小節1
所以其實 Thread.currentThread().interrupt();
也不是一定要加的?
IngramChen
積分 0
通常 thread 是 library 或 framework 呼叫你的 method 的。所以你也不知道它們是不是 loop 還是怎樣