Поделиться через


OpCodes.Endfilter Поле

Определение

Передает управление из предложения filter исключения обратно в обработчик исключений CLI.

public: static initonly System::Reflection::Emit::OpCode Endfilter;
public static readonly System.Reflection.Emit.OpCode Endfilter;
 staticval mutable Endfilter : System.Reflection.Emit.OpCode
Public Shared ReadOnly Endfilter As OpCode 

Значение поля

Комментарии

В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:

Формат Формат сборки Описание
FE 11 endfilter Предложение end filter для обработки исключений SEH.

Переходный режим стека в последовательном порядке:

  1. value помещается в стек.

  2. value выскочил из стека; endfilter выполняется, а управление передается обработчику исключений.

Value (который должен иметь тип int32 и является одним из определенных наборов значений) возвращается из предложения filter. Это должен быть один из следующих вариантов:

  • exception_continue_search (value = 0), чтобы продолжить поиск обработчика исключений

  • exception_execute_handler (value = 1), чтобы начать второй этап обработки исключений, на котором выполняются блоки finally, пока не будет найден обработчик, связанный с этим предложением фильтра. При обнаружении выполняется обработчик.

Другие целочисленные значения будут давать неопределенные результаты.

Точка входа фильтра, как показано в таблице исключений метода, должна быть первой инструкцией в блоке кода фильтра. Инструкция endfilter должна быть последней инструкцией в блоке кода фильтра (следовательно, для любого отдельного блока фильтра может быть только одна endfilter ). После выполнения инструкции endfilter управление логически передается обратно в механизм обработки исключений CLI.

Элемент управления не может быть передан в блок фильтра, кроме как с помощью механизма исключения. Управление не может быть передано из блока фильтра, кроме как с помощью инструкции throw или путем выполнения последней endfilter инструкции. Невозможно внедрить try блок в filter блок. Если исключение возникает внутри filter блока, оно перехватывается и возвращается значение 0 (exception_continue_search).

Emit Следующая перегрузка endfilter метода может использовать код операции:

Применяется к