выписка try - окончательн (c#)
Только для систем Microsoft
try-finally выписка расширение язык c (Майкрософт), который позволяет приложениям гарантировать выполнение кода очистки, когда прерывается выполнение блока кода.Очистка состоит из таких задач, какие deallocating память, заключительные файлы, а также освобождение дескрипторы файлов.try-finally выписка особенно полезна для подпрограмм, имеющих несколько мест, где выполняется проверка для ошибки, которые могут вызвать преждевременное вернуться из подпрограммы.
попытк-окончательн-выписка.
__try составной оператор__finally составной оператор
Составной оператор после __try предложение защищенный разделе.Составной оператор после __finally предложение обработчик завершения.Обработчик определяет набор действий, которые выполняются, когда защищенный раздел выйденн, выйденн ли защищенный раздел исключением (анормалным завершением) или стандартным упадите до конца (нормальное завершение).
Элемент управления достигает a __try выписка простым последовательным выполнением (упадите до конца).Если элемент управления вставляет __try выписка, связанный с ними модуль становится активным.выполнение продолжает следующим образом:
Защищенный раздел выполнен.
Обработчик завершения вызова.
Когда обработчик завершения завершает выполнение продолжается после __finally выписка.Независимо от того, как защищенные окончании шага (например, через a goto выписка из защищенного текста или через a return выписка), обработчик завершения выполняется раньше, чем поток элемента управления перемещается из защищенного раздела.
__leave ключевое слово допустимо в течение a try-finally блок выписки.Эффект __leave поскакать к концу try-finally блок.Обработчик завершения немедленно выполнен.Хотя a goto выписку можно использовать для выполнения такого же результата, a goto выписка вызывает очистки стека.__leave выписка более эффективны, поскольку она не включает очистки стека.
Оставить a try-finally оператор using a return оператор or longjmp функция среды выполнения, считается анормалным нулем.Недопустимо поскакать в выражении __try выписка, но юридическая поскакать из них.Все __finally выписки, которые активны между отправным точкой и назначением должна быть завершена.Это называется "local" очистки.
Обработчик завершения не вызывается, если убит процесс при выполнении a try-finally выписка.
![]() |
---|
Структурная обработка исключений работает на основе исходных файлов c и C++.Однако она не предназначена для C++.Можно убедиться, что Код портативне с помощью обработки исключений C++.Кроме того, механизм обработки исключений C++ очень является более гибким, что он может обрабатывать исключения любого типа. |
![]() |
---|
Для программ C++, обработка исключений С++ должна использоваться вместо структурированной обработки исключений.Дополнительные сведения см. в разделе обработка ошибок в Справочник по языку C++. |
См. пример попытк-за исключением выписки просмотреть как try-finally выписка работает.
ЭЛЕМЕНТ, относящийся Майкрософт