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