Versions Compared

Key

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

...

Exception handlers with inverted priorities cause unexpected control flow when an exception of the derived type occurs.

Rule

Severity

Likelihood

Remediation Cost

Priority

Level

ERR54-CPP

Medium

Likely

Low

P18

L1

Automated Detection

Tool

Version

Checker

Description

Astrée

Include Page
Astrée_V
Astrée_V

exception-caught-by-earlier-handler
Fully checked
Axivion Bauhaus Suite

Include Page
Axivion Bauhaus Suite_V
Axivion Bauhaus Suite_V

CertC++-ERR54
Clang
Include Page
Clang_V
Clang_V
-Wexceptions
 

CodeSonar
Include Page
CodeSonar_V
CodeSonar_V

LANG.STRUCT.UCTCH

Unreachable Catch

ECLAIR

Include Page
ECLAIR_V
ECLAIR_V

CP1.ERR36

Fully implemented

Helix QAC

Include Page
Helix QAC_V
Helix QAC_V

C++4030, C++4639
Klocwork
Include Page
Klocwork_V
Klocwork_V
MISRA.CATCH.NOALL
MISRA.CATCH.WRONGORD
 
 
LDRA tool suite
Include Page
LDRA_V
LDRA_V

541 S, 556 S

Fully implemented

Parasoft C/C++test
9.5EXCEPT-17 PRQA QA-C++ Include PagePRQA QA-C++_VPRQA QA-C++_V4030, 4639
Include Page
Parasoft_V
Parasoft_V
CERT_CPP-ERR54-a

Where multiple handlers are provided in a single try-catch statement or function-try-block for a derived class and some or all of its bases, the handlers shall be ordered most-derived to base class

Polyspace Bug Finder

Include Page
Polyspace Bug Finder_V
Polyspace Bug Finder_V

CERT C++: ERR54-CPP

Checks for:

  • Exception handlers not ordered from most-derived to base class
  • Incorrect order of ellipsis handler

Rule fully covered.

PVS-Studio

Include Page
PVS-Studio_V
PVS-Studio_V

V759
RuleChecker
Include Page
RuleChecker_V
RuleChecker_V
exception-caught-by-earlier-handler
Fully checked
 
SonarQube C/C++ Plugin
Include Page
SonarQube C/C++ Plugin_V
SonarQube C/C++ Plugin_V
S1045
 

Related Vulnerabilities

Search for other vulnerabilities resulting from the violation of this rule on the CERT website.

Related Guidelines

[MISRA 08]

Rule 15-3-6 (Required)
Rule 15-3-7 (Required)

Bibliography

[ISO/IEC 14882-2014]Subclause 15.3, "Handling an Exception"

...


...