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);
}
}
Guavaでこれを行う方法はありますか? スレッドが InterruptedException をラップして伝播している場合、スレッドを中断済みとして設定する Throwables.propagate() のようなものを使用する (下位互換性がある?!) 方法はありますか?