Динамические технические условия на исключения не должны использоваться
Динамические технические условия на исключения не должны использоваться.
Динамическая спецификация исключений - это метод определения поведения функции в случае исключения при помощи throw(<list of exceptions>) оператор в объявлении функции. Использование динамической спецификации исключений имеет следующие проблемы:
Стоимость эффективности: Поскольку спецификации динамических исключений проверяются во время выполнения, это добавляет накладные расходы и может снизить производительность кода.
Не подходит для типового программирования: Поскольку точный тип исключений, вызванных шаблонами функций или классов, обычно не известен заранее, это может быть трудно использовать throw операторы в типовом коде.
По этим причинам избегайте throw(<list of exceptions>) оператор для определения исключений. Используйте noexcept вместо этого ключевое слово. Потому что noexcept операторы проверяются во время компиляции, они подходят для типового программирования и обычно обеспечивают лучшую эффективность, чем throw операторы. Стандарт C++ 11 указывает, что в будущем спецификация динамических исключений будет удалена из C++.
Когда throw(<list of exceptions>) оператор используется в объявлении функции, Polyspace® флаги throw оператор. Polyspace не помечает throw операторы, которые используются для создания исключения.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
| Группа: Обработка исключений |
| Категория: Необходимый, Автоматизированный |