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

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024