Marshal.GetHRForException(Exception) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует указанное исключение в HRESULT.
public:
static int GetHRForException(Exception ^ e);
[System.Security.SecurityCritical]
public static int GetHRForException(Exception e);
public static int GetHRForException(Exception? e);
public static int GetHRForException(Exception e);
[<System.Security.SecurityCritical>]
static member GetHRForException : Exception -> int
static member GetHRForException : Exception -> int
Public Shared Function GetHRForException (e As Exception) As Integer
Параметры
Исключение для преобразования в HRESULT.
Возвращаемое значение
HRESULT, сопоставленный с предоставленным исключением.
- Атрибуты
Комментарии
GetHRForException также настраивает интерфейс IErrorInfo для исключения, которое можно получить путем вызова функции COM GetErrorInfoNEEDGUID. Эту функцию можно использовать для возврата значения HRESULT в реализации управляемого класса интерфейса COM, в котором применяется PreserveSigAttribute атрибут. У метода атрибута перехват всех исключений и использование GetHRForException метода для возврата соответствующего значения HRESULT. Разрешение исключения распространяться за пределами метода приводит к неправильному поведению. (На самом деле среда CLR не передает исключение клиенту COM, который вызывает такой метод через v-table.)
Обратите внимание, что GetHRForException метод задает интерфейс IErrorInfo текущего потока. Это может привести к непредвиденным результатам для таких методов, как ThrowExceptionForHR методы, которые по умолчанию используют IErrorInfo текущего потока, если он задан.