InterruptedException
在 Guava 中使用 Throwables.propagate(e) 时处理 s 的最佳做法是什么?
我喜欢使用throw Throwables.propagate(e)
,尤其是在不引发检查异常以及异常处理是调用者责任的方法中。但它并没有达到我对 InterruptedException 的期望。
我不想失去线程被中断的事实,所以我最终写了如下内容:
public void run() {
Callable c = ...;
try {
c.call();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw Throwables.propagate(e);
} catch (Exception e) {
throw Throwables.propagate(e);
}
}
有没有办法在番石榴中做到这一点?是否有(向后兼容?!)使用 Throwables.propagate() 之类的方法将线程设置为中断,如果它正在包装和传播 InterruptedException?