Программа не должна быть резко отключена. В частности, неявный или явный вызов станд.:: аварийное прекращение работы (), станд.:: quick_exit (), станд.:: _Exit (), станд.:: оконечный () не буду сделан
Программа не должна быть резко отключена. В частности, неявный или явный вызов станд.:: аварийное прекращение работы (), станд.:: quick_exit (), станд.:: _Exit (), станд.:: оконечный () не буду сделан.
Функционирует, такие как std::abort(), std::quick_exit(), и std::_Exit() отключите программу сразу, не вызывая выходных обработчиков или вызвав любые деструкторы для созданных объектов. std::terminate() функционируйте неявно вызывает std::abort() отключать программу резко. Исключения, которые не обработаны или не могут быть обработаны, могут также вызвать резкое завершение программы.
В зависимости от вашей среды компилятор не может высвободить выделенные средства и раскрутить стек, когда программа отключена резко, ведя к проблемам, таким как утечки памяти. Такие аварийные завершения программы могут сделать код уязвимым для атак "отказ в обслуживании". Постарайтесь не отключать программу резко.
Polyspace® отмечает операции, которые могут привести к резкому завершению программы. Например:
Деструктор класса выходит с необработанным исключением. Смотрите AUTOSAR C++14 Rule A15-5-3.
Конструктор глобальной переменной или статического объекта вызывается непосредственно, но это явным образом не задано как noexcept. Смотрите AUTOSAR C++14 Rule A15-2-1.
noexcept функционируйте повышает необработанное исключение. Смотрите AUTOSAR C++14 Rule A15-4-2.
Аргумент throw оператор повышает исключение. Смотрите AUTOSAR C++14 Rule M15-1-1.
Небезопасное завершение функционирует, такие как std::_Exit, std::abort, и std::quick_exit явным образом вызываются.
Функциональный std::terminate явным образом вызывается.
Обработчик для аварийного завершения явным образом указан при помощи функций std::set_terminate или std::get_terminate.
Обработчик для нормального завершения, которое указано к std::atexit повышает необработанное исключение.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
| Группа: Обработка исключений |
| Категория: Необходимый, Частично автоматизированный |