Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Abrupt completion of a finally block masks any exceptions thrown inside the associated try and catch blocks.

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

ERR04-J

Low

Probable

Medium

P4

L3

Automated Detection

Tool
Version
Checker
Description
Coverity7.5PW.ABNORMAL_TERMINATION_ OF_FINALLY_BLOCKImplemented
Parasoft Jtest
9.5PB.CUB.ARCF, PB.CUB.ATSF 
Include Page
Parasoft_V
Parasoft_V
CERT.ERR04.ARCF
CERT.ERR04.ATSF
Avoid using 'return's inside 'finally blocks if thare are other 'return's inside the try-catch block
Do not exit "finally" blocks abruptly
PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V6051
SonarQube
Include Page
SonarQube_V
SonarQube_V
S1143Jump statements should not occur in "finally" blocks
SonarQube Java Plugin Include PageSonarQube Java Plugin_VSonarQube Java Plugin_VS1143Implemented

Related Guidelines

MITRE CWE

CWE-459, Incomplete Cleanup
CWE-584, Return Inside finally Block

Bibliography

[Bloch 2005]

Puzzle 36. Indecision

[Chess 2007]

Section 8.2, "Managing Exceptions, The Vanishing Exception"

[JLS 2015]

§14.20.2, "Execution of try-finally and try-catch-finally"

...


...

Image Modified Image Modified Image Modified