Main Content
C++ Exception Defects
Defects related to C++ exceptions and their handling such as unhandled exception in a
noexcept
function or unexpected exception raised by a throw
statementThese defects are related to C++ exception handling. The defects include:
Unhandled exception emitting from a
noexcept
functionUnexpected exception arising during constructing the argument object of a
throw
statementcatch
statements catching exceptions by value instead of by referencecatch
statements hiding subsequentcatch
statements.
Polyspace Results
Exception caught by value | catch statement accepts an object by
value |
Exception handler hidden by previous
handler | catch statement is not reached because
of an earlier catch statement for the same exception |
Noexcept function
exits with exception | Functions specified as noexcept ,
noexcept(true) or noexcept(<true condition>)
exits with an exception, which causes abnormal termination of program execution, leading to
resource leak and security vulnerability (Since R2020b) |
Throw argument raises
unexpected exception | The argument expression in a throw statement raises unexpected
exceptions, leading to resource leaks and security vulnerabilities (Since R2020b) |
Uncaught
exception | An exception is raised from a function but it is not caught and handled (Since R2022b) |
Throw argument
expression calls new | The argument expression in a throw statement allocates memory by
calling new , which can result in abrupt termination of the program and
resource leaks (Since R2023b) |
Topics
- Bug Finder Defect Groups
The Bug Finder defect checkers are classified into groups such as data flow, concurrency, numerical, and so on.