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
CodeSonar
Include Page
CodeSonar_V
CodeSonar_V
PMD.Strict-Exceptions.DoNotThrowExceptionInFinallyDo not throw exception in finally
Coverity7.5PW.ABNORMAL_TERMINATION_ OF_FINALLY_BLOCKImplemented
Parasoft Jtest
Include Page
Parasoft_V
Parasoft_V
PB.CUB.ARCF, PB.CUB.ATSF
 

SonarQube
Include Page
SonarQube_V
SonarQube_V
S1143
 
Jump statements should not occur in "finally" blocks

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"

 


...