我正在进行以下工作:
Stopwatch stopWatchToCheckTimeout;
void checkShutDown() throws InterruptedException {
if (stopWatchToCheckTimeout.elapsed() >= MAX_GRACEFUL_TIMEOUT_DURATION) {
throw new InterruptedException("Time to shut down now!");
}
}
public Void mainFancyMethod() {
try {
while(true) {
checkShutDown();
// do fancy work
}
} catch (InterruptedException ex) {
log.debug("Shutting down gracefully");
}
return null;
}
从java/lang/InterruptedException文档中,我无法清楚地了解到是否按照标准应该由另一个线程来中断还是一个线程自己抛出此异常。
在这种情况下,最好抛出哪个异常?
InterruptedException
不应该被抑制。否则,在您的情况下抛出此异常将是无意义的。 - Arnaud Claudel