# V5003. OWASP. The object was created but it is not being used. The 'throw' keyword could be missing.

Note: the diagnostic rule applies only to C++.

The analyzer has detected a potential error related to the use of the 'std::exception' class or derived class. The analyzer has issued the warning when an object of the 'std::exception' / 'CException' type is created but not being used.

Here is the example:

    if (name.empty())
      std::logic_error("Name mustn't be empty");

The 'throw' keyword has accidentally been omitted. As a result, the code does not throw an exception when an error occurs.

Here is the fixed code:

    if (name.empty())
      throw std::logic_error("Name mustn't be empty");

This diagnostic is classified as:

CWE-390 OWASP-11.1.8 CERT-MSC13-C