OpCodes.Endfinally Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Передает управление из fault или finally предложения блока исключений обратно в обработчик исключений (CLI).
public: static initonly System::Reflection::Emit::OpCode Endfinally;
public static readonly System.Reflection.Emit.OpCode Endfinally;
staticval mutable Endfinally : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfinally As OpCode
Значение поля
Комментарии
В следующей таблице перечислены шестнадцатеричные и шестнадцатеричные и Microsoft формат сборки промежуточного языка (MSIL) инструкции, а также краткая сводка по ссылке:
| Формат | Формат сборки | Description |
|---|---|---|
| DC | endfinally endfault |
finally Заканчивается предложение или fault предложение блока исключений. |
Для этой инструкции нет поведения перехода стека.
Endfinally и endfault сигнализирует о завершении finally предложения fault , чтобы стек очистки может продолжаться до вызова обработчика исключений. Инструкция endfinally передает endfault управление обратно в механизм исключений CLI. Затем механизм выполняет поиск следующего finally предложения в цепочке, если защищенный блок был завершен с помощью инструкции по выходу. Если защищенный блок был завершен с исключением, интерфейс командной строки будет искать следующий finally или faultввести обработчик исключений, выбранный во время первой передачи исключений.
Инструкция endfinally может отображаться только лексически в блоке finally .
endfilter В отличие от инструкции, не требуется, чтобы блок закончился инструкциейendfinally, и в блоке может быть столько endfinally инструкций, сколько требуется. Эти же ограничения применяются к endfault инструкции и блоку fault .
Управление не может быть передано в finally блок (или fault) за исключением механизма исключения. Управление не может быть передано из finally блока (или fault) за исключением использования инструкции throw или выполнения endfinally инструкции (или endfault). В частности, вы не можете "выпасть" из finally блока (или fault) или выполнить RetLeave инструкцию в блоке finally (или fault).
Обратите внимание, что endfault псевдонимы и инструкции соответствуют одному и endfinally тому же коду opcode.
Следующая Emit перегрузка метода может использовать endfinally (endfault) opcode, а также ILGenerator метод EndExceptionBlock.