Inspectopedia Help

Assignment to 'catch' block parameter

Reports assignments to, catch block parameters.

Changing a catch block parameter is very confusing and should be discouraged.

The quick-fix adds a declaration of a new variable.

Example:

void processFile(String fileName) throws Exception { try { doProcessFile(fileName); } catch(Exception ex) { if (ex instanceof UncheckedIOException) { // Warning: catch block parameter reassigned ex = ((UncheckedIOException) ex).getCause(); } throw ex; } }

After the quick-fix is applied:

void processFile(String fileName) throws Exception { try { doProcessFile(fileName); } catch(Exception ex) { Exception unwrapped = ex; if (unwrapped instanceof UncheckedIOException) { unwrapped = ((UncheckedIOException) unwrapped).getCause(); } throw unwrapped; } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023