Обучение
Модуль
Устранение неполадок со сценариями и обработка ошибок в Windows PowerShell - Training
В этом модуле рассматривается устранение неполадок со сценариями PowerShell и сообщения об ошибках.
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
В этом разделе описывается ошибка, которая может возникнуть при возникновении проблем с функциями веб-служб Windows в результате сбоя выполнения команды.
Как правило, значение параметров out не изменяется, если функция завершается ошибкой.
Существует несколько экземпляров, в которых параметры вне изменяются, если функция завершается ошибкой. Эти случаи явно вызваны в документации по каждому параметру. Если документация не упоминание ничего о изменении параметров в случае сбоя, можно предположить, что функция не изменит их.
Все коды возврата ошибок — HRESULTs. Этот API определяет набор HRESULTs в диапазоне FACILITY_WEBSERVICES, но также возвращает ошибки, определенные в другом месте API Windows.
Ознакомьтесь с документацией по конкретным API, чтобы узнать, какие коды ошибок возвращаются. Список не предназначен для получения исчерпывающего значения для каждого API, а список кодов ошибок, для которых существуют распространенные сценарии для явной обработки. Вызывающий объект всегда должен принимать другие коды ошибок из любого API.
Этот API определяет относительно небольшое количество кодов ошибок, которые соответствуют сценариям, в которых программа будет принимать меры на основе ошибки. Коды ошибок могут быть недостаточно, чтобы определить, что пошло не так, или для предоставления хорошего описания проблемы пользователю. Лучшее понимание проблемы происходит от использования расширенных ошибок, как описано ниже.
В дополнение к возврату кода ошибки вызывающий объект может при необходимости запрашивать подробные сведения об ошибке для любого вызова API путем передачи объекта, отличного от NULLWS_ERROR . Чтобы создать объект ошибки, используйте WsCreateError. Если возникает ошибка, API, вызвавшей ошибку, заполняет объект ошибки дополнительным контекстом о ситуации ошибки. Если ошибка отсутствует, объект ошибки не изменен. Передача объекта ошибки NULL указывает, что вызывающий объект не заинтересован в подробных сведениях об ошибках. Вызывающие объекты (включая обратные вызовы) должны быть готовы к обработке объектов ошибок NULL .
Обратите внимание, что один и тот же объект ошибки можно использовать для нескольких вызовов API, но может использоваться только для одного вызова API за раз (так как он является одним потоком). Каждый раз при возникновении ошибки сведения об ошибке добавляются в объект ошибки. При отмене цепочки вызовов несколько функций могут добавлять сведения в объект ошибки, чтобы предоставить дополнительный контекст об ошибке. Чтобы очистить содержимое объекта ошибки перед повторной его использованием (после возникновения ошибки), используйте WsResetError. Если ошибка не возникает, перед повторной его использованием не нужно сбрасывать объект ошибки.
Подробные сведения об ошибке состоят из следующих элементов:
Сведения об ошибках и ошибках см. в разделе "Ошибки".
При создании объекта ошибки указывается LANGID требуемого перевода языка для сведений об ошибке. Это используется при добавлении сведений об ошибке в объект ошибки.
Это значение языка можно получить или задать с помощью WS_ERROR_PROPERTY_LANGID.
Этот API предоставляет канонический набор кодов ошибок (WS_E_*), позволяющий использовать различные технологии коммуникации без необходимости зависеть от конкретных кодов ошибок конкретной базовой реализации. Полный список этих кодов ошибок см. в разделе "Возвращаемые значения веб-служб Windows".
Это позволяет, например, программе проверка для кода ошибки WS_E_ENDPOINT_NOT_FOUND, независимо от того, используется ли TCP, UDP или HTTP, и предпринять некоторые действия (например, попытка использовать другую конечную точку).
Если код конкретной реализации сопоставляется с канонической ошибкой, исходный код ошибки сохраняется в объекте ошибки и может по-прежнему быть доступен для диагностических целей. Дополнительные сведения см . в WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE .
Следующие коды ошибок зарезервированы для недопустимого использования API и не будут возвращены в других случаях. Если возвращаются какие-либо из этих ошибок, это может быть признак ошибки приложения.
Следующие перечисления являются частью трассировки:
Следующие коды ошибок являются частью трассировки:
Следующие функции являются частью трассировки:
Следующий дескриптор является частью трассировки:
Следующая структура является частью трассировки:
Существует ряд соображений безопасности, о которых должен учитывать пользователь объекта ошибки:
Обучение
Модуль
Устранение неполадок со сценариями и обработка ошибок в Windows PowerShell - Training
В этом модуле рассматривается устранение неполадок со сценариями PowerShell и сообщения об ошибках.