 
                            ...
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++_V4634, 4636, 4637, 4639 | ||||||
| RuleChecker | 
 | potentially-throwing-static-initialization | Partially checked | 
...