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

Параметры

e
Exception

Исключение для преобразования в HRESULT.

Возвращаемое значение

HRESULT, сопоставленный с предоставленным исключением.

Атрибуты

Комментарии

GetHRForException также настраивает интерфейс IErrorInfo для исключения, которое можно получить путем вызова функции COM GetErrorInfoNEEDGUID. Эту функцию можно использовать для возврата значения HRESULT в реализации управляемого класса интерфейса COM, в котором применяется PreserveSigAttribute атрибут. У метода атрибута перехват всех исключений и использование GetHRForException метода для возврата соответствующего значения HRESULT. Разрешение исключения распространяться за пределами метода приводит к неправильному поведению. (На самом деле среда CLR не передает исключение клиенту COM, который вызывает такой метод через v-table.)

Обратите внимание, что GetHRForException метод задает интерфейс IErrorInfo текущего потока. Это может привести к непредвиденным результатам для таких методов, как ThrowExceptionForHR методы, которые по умолчанию используют IErrorInfo текущего потока, если он задан.

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

См. также раздел