是否有一种简单的方法来调用睡眠和传播异常



我想调用Thread.sleep,并传播InterruptException,如果它确实被抛出。

的语法:

Interruptibles.sleep(1000);

相当于

try {
    Thread.sleep(1000);
} catch (InterruptException e) {
    throw Throwables.propagate(e);
}

在公共库(guava, apache commons等)中是否有类似的函数

在RuntimeException中包装很可能会导致痛苦。这是一个复杂的主题,我建议您阅读Java Concurrency in Practice中的相关章节,以充分了解您的选项。番石榴有sleepuninterruptible,它实现了其中一个标准的习语描述。

你可以这样做。

try {
    Thread.sleep(1000);
} catch (InterruptException e) {
    Thread.currentThread().interrupt();
}

try {
    Thread.sleep(1000);
} catch (InterruptException e) {
    Thread.currentThread().stop(e);
}

,但通常最好让异常"冒泡"到可以正确处理它的地方。您的IDE可以通过填写您需要的代码来简化此操作。

最新更新