JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
C and C++


PARSE.MBDH : Masked by Default Handler

Summary

A catch statement can never be executed, because a catch-all handler (catch(...)) occurs earlier in the same try-catch statement or function-try-block.

If there are multiple such catch statements in the same try-catch statement or function-try-block, a warning is only issued for the first one.

See also Use of catch.

This warning class is derived from a C/C++ parser warning.

Properties

Class Name Masked by Default Handler
Significance redundancy
Mnemonic PARSE.MBDH
Categories
AUTOSARC++14 AUTOSARC++14:M15-3-7 Where multiple handlers are provided in a single try-catch statement or function-try-block, any ellipsis (catch-all) handler shall occur last.
MisraC++2008 MisraC++2008:15-3-7 Where multiple handlers are provided in a single try-catch statement or function-try-block, any ellipsis (catch-all) handler shall occur last.
CWE CWE:561 Dead Code
  CWE:703 Improper Check or Handling of Exceptional Conditions
CERT-CPP CERT-CPP:ERR51-CPP Handle all exceptions
JSF++ JSF++:186 There shall be no unreachable code.
OWASP-2025 OWASP-2025:A10 Mishandling of Exceptional Conditions
Availability Available for C++ only (not C).
Enabling Checks for this warning class are enabled by default. However, warning instances of this class that are issued as parser errors (rather than parser warnings) will be discarded when using factory configuration settings. To prevent these instances from being discarded, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Masked by Default Handler"
To disable checks for this warning class, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Masked by Default Handler"

Example

void stuff();

void parse_mdbh(){
    // try-catch statement
    try{stuff();}
    catch (...) {}                                   // 'Use of catch' warning issued here
    catch (int) {} // 'Masked by Default Handler' warning issued here
                   // - preceding catch(...) statement means that this catch(int) statement can never execute
                   // ('Use of catch' warning also issued)
}

// function-try-block
void parse_mdbh_ftb() try{stuff();}
 catch (...) {}                                      // 'Use of catch' warning issued here
 catch (int) {}    // 'Masked by Default Handler' warning issued here
                   // ('Use of catch' warning also issued)

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.

 

To report problems with this documentation, please visit https://support.codesecure.com/.