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