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; }

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

UnnecessaryInitCause
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Error handling

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024