Макрос RpcExcept (rpc.h)
Инструкция RpcExcept обеспечивает структурированную обработку исключений для приложений RPC.
Windows Vista и более поздние версии Windows: RpcExceptionFilter рекомендуется для структурированной обработки исключений для наиболее распространенных исключений в качестве альтернативы пользовательским фильтрам с RpcExcept. Однако настраиваемые фильтры исключений должны по-прежнему использовать RpcExcept.
Синтаксис
void RpcExcept(
expr
);
Параметры
expr
Выражение, которое вычисляется при возникновении исключения. Если выражение принимает ненулевое значение, выполняются инструкции исключения. Если выражение принимает нулевое значение, очистка продолжается до следующей функции RpcTryExcept или RpcTryFinally .
Возвращаемое значение
None
Remarks
Если исключение не возникает, операторыexpression и exception пропускаются и выполнение продолжается в инструкции, следующей за инструкцией RpcEndExcept.
Составной оператор после предложения RpcTryExcept является телом или защищенным разделом. Составной оператор после предложения RpcExcept является обработчиком исключений. Он задает набор действий, выполняемых при возникновении исключения в теле защищенного раздела. Выполнение происходит следующим образом:
- Сначала выполняется защищенный раздел.
- Если во время выполнения защищенного раздела исключения не возникает, выполнение продолжается в инструкции после предложения RpcEndExcept .
- Если исключение возникает во время выполнения защищенного раздела или в любой подпрограмме, которую вызывает защищенный раздел, вычисляется выражение __except, а значение определяет способ обработки исключения. Поддерживается три значения:
- EXCEPTION_CONTINUE_EXECUTION (–1) Исключение закрывается. Выполнение продолжается в точке, в которой возникло исключение.
- EXCEPTION_CONTINUE_SEARCH (0) Исключение не распознано. Программа переходит к поиску обработчика в стеке (сначала находятся выражения с оператором try-except, а затем обработчики с наивысшим приоритетом).
- Исключение распознано. Передайте управление обработчику исключений, выполнив составной оператор __except, а затем продолжите выполнение после блока __except.
RpcExceptionCode можно использовать как в выражениях , так и в инструкциях исключений , чтобы определить, какое исключение произошло.
Применяются следующие ограничения:
- Переход (через goto) в защищенные операторы не допускается.
- Переход (через goto) в операторы исключений не допускается.
- Возврат или переход (через goto) из защищенных инструкций не допускается.
- Возврат или переход (через goto) из инструкций исключений не допускается.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rpc.h |