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


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. Разрешение распространения исключения за пределы метода приводит к неправильному поведению. (На самом деле общеязыковая среда выполнения не передает исключение клиенту COM, который вызывает такой метод через v-таблицу.)

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

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

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