...
Throwing an exception that cannot be caught results in abnormal program termination and can lead to denial-of-service attacks.
Rule | Severity | LikelihoodRemediation Cost | Detectable | Repairable | Priority | Level |
|---|---|---|---|---|---|---|
ERR58-CPP | Low | Likely | No | LowYes | P9P6 | L2 |
Automated Detection
Tool | Version | Checker | Description | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Astrée |
| potentially-throwing-static-initialization | Partially checked | |||||||||||
| Axivion Bauhaus Suite |
| CertC++-ERR58 | ||||||||||||
| Clang |
| cert-err58-cpp | Checked by clang-tidy | |||||||||||
| CodeSonar |
| LANG.STRUCT.EXCP.THROW | Use of throw | |||||||||||
| Helix QAC |
| C++4634, C++4636, C++4637, C++4639 | ||||||||||||
| Parasoft C/C++test |
| CERT_CPP-ERR58-a | Exceptions shall be raised only after start-up and before termination of the program | |||||||||||
| Polyspace Bug Finder |
| CERT C++: ERR58-CPP | Checks for exceptions raised during program startup (rule fully covered) | PRQA QA-C++ | | Include Page | | PRQA QA-C++_V | PRQA QA-C++_V | 4634, 4636, 4637, 4639||||||
| RuleChecker |
| potentially-throwing-static-initialization | Partially checked |
...