在做一个项目时,我遇到了这个用于生产系统的代码:
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
}
}
}
我一直坚持 Joshua Bloch 在 Effective Java 中公开的永不丢弃异常的基本原则,并以我自己的丰富经验来支持必须调试其他人确实丢弃异常的代码。迄今为止,我还没有找到一个好主意的案例(有时捕获检查的异常并抛出运行时是有争议的,但我在这里不是在谈论这些案例)。
提前感谢您的任何评论。