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