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