Основная функция и основная функция задачи должны улавливать, по крайней мере: исключения базового класса из всех используемых сторонних библиотек, std:: исключение и все необработанные исключения
Основная функция и основная функция задачи должны улавливать, по крайней мере: исключения базового класса из всех используемых сторонних библиотек, std:: исключение и все необработанные исключения.
Во время исполнения main() или основная функция задачи, могут возникать различные исключения. Например:
Явно поднятые исключения класса std::exception
Исключения, возникающие из используемых сторонних библиотек
Непредвиденные исключения
Если какое-либо из этих исключений не может быть сопоставлено обработчику, компилятор неявно вызывает функцию std::terminate() для аварийного завершения выполнения программы. В зависимости от используемого оборудования и программного обеспечения этот процесс завершения может вызвать std::abort() прервать выполнение программы без удаления переменных в стеке. Такое ненормальное завершение приводит к утечкам памяти и уязвимостям системы безопасности.
Необработанные исключения могут привести к аварийному завершению выполнения программы, что приведет к утечке памяти и уязвимостям системы безопасности. Чтобы избежать этих проблем, выполните операции main() или основные функции задачи в try-catch блок. В блоках комплектования:
Обрабатывать исключения типа std::exception явно в соответствующих блоках catch.
Обработка базового класса исключений, возникающих из сторонних библиотек.
Обрабатывать непредвиденные исключения в catch(...) блок.
Флаги Polyspace ® main() функцию или основную функцию задачи, если:
В функции возникают необработанные исключения. Например, исключения, возникающие за пределами try-catch блок или в блоке catch может остаться необработанным.
Функция не имеет try-catch блок.
Функция не имеет блоков захвата для явной обработки std::exception исключения типа.
Функция не имеет catch-all или catch(...) блоки для обработки непредвиденных исключений.
Polyspace не проверяет, обрабатываются ли исключения из сторонних библиотек.
Флаги Polyspace a main() функция или основная функция задачи, даже если необработанное исключение не может быть создано.
Polyspace обнаруживает main() функция. Чтобы указать функцию в качестве основной функции задачи, используйте следующие опции компиляции:
-entry-points < имя >
-cyclic-задачи < имя >
-interrupts < имя >
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Обработка особых ситуаций |
| Категория: Обязательный, частично автоматизированный |