總是忽略InterruptedException的調用線程睡眠()當一個項目工作,我碰到這個代碼用於生產系統傳來:是以往任何時候都安全在Java
public static void sleepUntil(long millisecondToWake) {
while (true) {
long currentMillisecond = System.currentTimeMillis();
if (currentMillisecond >= millisecondToWake) {
break;
}
try {
Thread.sleep(millisecondToWake - currentMillisecond);
}
catch (InterruptedException ignoredException) {
// do nothing
}
}
}
我一直堅持的基本在有效的Java暴露由Joshua布洛赫以及具有調試代碼我自己豐富的經驗,在那裏別人沒有下降的異常支持從來沒有下降的例外原則。到今天爲止,我還沒有發現它是一個好主意(有時能夠檢查異常,並拋出一個運行時debatably合理的,但我不是在這裏談論的情況下)的情況下。
先感謝您的任何意見。
永遠是一個很好的選擇,留下一個空白抓。首先你不會注意到你的代碼出現故障。在產生這個異常時讀取,並編寫期望異常的代碼。 – logoff
http://stackoverflow.com/q/824110/813951 –