Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Пустой бросок (бросок;) буду только использоваться в составном операторе обработчика выгоды.
Когда вы используете пустой оператор (throw;) броска, компилятор проверяет, присутствует ли объект исключения в текущем осциллографе. Если текущий осциллограф содержит объект исключения, компилятор повышает временный объект, содержащий текущее исключение. Если текущий осциллограф не содержит объекты исключения, компилятор вызывает std::terminate() неявно. Функциональный std::terminate() отключает выполнение программы заданным реализацией способом. Таким образом, точный процесс завершения программы зависит от программного и аппаратного обеспечения, которое вы используете. Например, std:terminate() может вызвать std::abort() неправильно прерывать выполнение, не раскручивая стек, ведя к утечке ресурсов и уязвимостям системы обеспечения безопасности.
Лучшая практика должна использовать пустой оператор броска только в catch блок try-catch создайте, который позволяет вам распространить обработку исключения через несколько блоков выгоды. Избегайте использования пустых операторов броска в осциллографах, которые не могут содержать исключение.
Polyspace® отмечает пустой оператор броска, если это не в блоке выгоды.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
| Группа: Обработка исключений |
| Категория: необходимый |