File: InterruptedExceptionSwallowed.md

package info (click to toggle)
error-prone-java 2.18.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 23,204 kB
  • sloc: java: 222,992; xml: 1,319; sh: 25; makefile: 7
file content (28 lines) | stat: -rw-r--r-- 1,149 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 http://web.archive.org/web/20201025132525/https://www.ibm.com/developerworks/library/j-jtp05236/index.html

## Suppression

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](https://docs.oracle.com/javase/8/docs/technotes/guides/language/catch-multiple.html)
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.

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