This catch block appears to be catching an explicitly declared InterruptedException as an Exception/Throwable and not handling the interruption separately.


The problem

This check warns when an InterruptedException could be thrown but isn’t being individually handled.

It is important for correctness and performance that thread interruption is handled properly, however try blocks that catch Exception or Throwable (or methods that throws either type) make it difficult to recognize that interruption may occur.

For advice on how to handle InterruptedException, see


Where possible, the best option is to enumerate the specific exceptions being thrown/caught, so that InterruptedException is not possible. For example use multiple exception types in a catch block instead of catching Exception.

Suppress false positives by adding an @SuppressWarnings("InterruptedExceptionSwallowed") annotation to the enclosing element, or the caught exception.

try {
} catch (@SuppressWarnings("InterruptedExceptionSwallowed") Exception e) {
  throw new IllegalStateException(e);