番石榴:Throwables.propagate and InterruptedException
在番石榴中使用Throwtables.propagate(e)时处理s的最佳实践是什么?InterruptedException
我喜欢使用 ,特别是在不引发任何已检查异常的方法中,并且异常处理是调用方的责任。但它并没有像我对DisruptedException所期望的那样。throw Throwables.propagate(e)
我不想失去线程被中断的事实,所以我最终写了这样的东西:
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);
}
}
有没有办法在番石榴做到这一点?有没有一种(向后兼容?!)方法来使用像Throwtables.propagate()这样的东西,如果线程正在包装和传播中断的异常,它将线程设置为中断?