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

Примечание. Данное диагностическое правило применимо только к языку C++.

Анализатор обнаружил потенциальную ошибку, связанную с использованием класса 'std::exception' или наследуемого от него класса. Анализатор выдаёт предупреждение в том случае, если создаётся объект типа 'std::exception' / 'CException', но не используется.

Пример:

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

Ошибка заключается в том, что случайно забыто ключевое слово 'throw'. В результате данный код не генерирует исключение в случае ошибочной ситуации. Исправленный вариант кода:

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

Данная диагностика классифицируется как:

CWE-390 OWASP-11.1.8 CERT-MSC13-C