Inspectopedia Help

'throw' inside 'catch' block which ignores the caught exception

Reports exceptions that are thrown from inside catch blocks but do not "wrap" the caught exception.

When an exception is thrown in response to an exception, wrapping the initial exception prevents losing valuable context information, such as stack frames and line numbers.

Example:

... catch (IOException e) { closeAllConnections(); throw new ConnectException("Connection problem."); // warning: 'throw' inside 'catch' block ignores the caught exception 'e' }

Configure the inspection:

  • Use the Ignore if result of exception method call is used option to indicate whether the inspection should ignore exceptions whose argument is the result of a method call on the original exception, such as getMessage().

  • Use the Ignore if thrown exception cannot wrap an exception option to ignore throw statements that throw exceptions without a constructor that accepts a Throwable cause.

Inspection options

Option

Type

Default

Ignore if result of exception method call is used

Checkbox

false

Ignore if thrown exception cannot wrap an exception

Checkbox

false

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023