Inspectopedia Help

Unnecessary call to 'Throwable.initCause()'

Reports calls to Throwable.initCause() where an exception constructor also takes a Throwable cause argument.

In this case, the initCause() call can be removed and its argument can be added to the call to the exception's constructor.

Example:

try { process(); } catch (RuntimeException ex) { RuntimeException wrapper = new RuntimeException("Error while processing"); wrapper.initCause(ex); // Unnecessary call to 'Throwable.initCause()' throw wrapper; }

A quick-fix is available to pass the cause argument to the constructor. After the quick-fix is applied:

try { process(); } catch (RuntimeException ex) { RuntimeException wrapper = new RuntimeException("Error while processing", ex); throw wrapper; }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023