Marshal.ThrowExceptionForHR Метод

Определение

Создает исключение с определенным значением ошибки HRESULT.

Перегрузки

ThrowExceptionForHR(Int32)

Создает исключение с определенным значением ошибки HRESULT.

ThrowExceptionForHR(Int32, IntPtr)

Создает исключение с определенным значением ошибки HRESULT в соответствии с указанным интерфейсом IErrorInfo.

ThrowExceptionForHR(Int32)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Создает исключение с определенным значением ошибки HRESULT.

public:
 static void ThrowExceptionForHR(int errorCode);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode);
public static void ThrowExceptionForHR (int errorCode);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int -> unit
static member ThrowExceptionForHR : int -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer)

Параметры

errorCode
Int32

Значение HRESULT, соответствующее нужному исключению.

Атрибуты

Комментарии

Этот метод создает объект исключения для указанного сбоя HRESULT. Если HRESULT имеет значение 0 или положительное значение (код успешного выполнения), метод возвращается без создания или создания исключения.

Обратите внимание, что ThrowExceptionForHR(Int32) метод возвращает исключение на основе интерфейса IErrorInfo текущего потока, если оно задано. В этом случае errorCode параметр игнорируется.

Некоторые ошибки HRESULT сопоставляют с определенными исключениями, а другие — нет. Если HRESULT сопоставляется с определенным исключением, ThrowExceptionForHR создает экземпляр исключения и создает его. В противном случае он создает экземпляр COMException, инициализирует поле кода ошибки с помощью HRESULT и создает это исключение. При ThrowExceptionForHR вызове он пытается получить дополнительные сведения об ошибке с помощью неуправляемой функции GetErrorInfo .

Сведения о сопоставлении каждого HRESULT с сопоставимым классом исключений в платформа .NET Framework см. в разделе Практическое руководство. Сопоставление HRESULTs и исключений.

ThrowExceptionForHR Иногда может возвращать исключение из предыдущего вызова COM. В этом случае можно использовать следующее обходное решение и передать IntPtr(-1) в качестве второго параметра (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

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

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

ThrowExceptionForHR(Int32, IntPtr)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Создает исключение с определенным значением ошибки HRESULT в соответствии с указанным интерфейсом IErrorInfo.

public:
 static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int * nativeint -> unit
static member ThrowExceptionForHR : int * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, errorInfo As IntPtr)

Параметры

errorCode
Int32

Значение HRESULT, соответствующее нужному исключению.

errorInfo
IntPtr

nativeint

Указатель на интерфейс IErrorInfo, предоставляющий дополнительные сведения об ошибке. Можно задать значение IntPtr(0) , чтобы использовать текущий интерфейс IErrorInfo , или значение IntPtr(-1) , чтобы игнорировать текущий интерфейс IErrorInfo и создать исключение только из кода ошибки.

Атрибуты

Комментарии

Этот метод создает объект исключения для указанного сбоя HRESULT. Если HRESULT имеет значение 0 или положительное значение (код успешного выполнения), метод возвращается без создания или создания исключения.

Метод ThrowExceptionForHR освобождает errorInfo параметр , уменьшая число ссылок COM интерфейса IErrorInfo .

Обратите внимание, что ThrowExceptionForHR метод возвращает исключение на основе интерфейса IErrorInfo текущего потока, если оно задано. В этом случае errorCode параметр игнорируется.

Некоторые ошибки HRESULT сопоставляют с определенными исключениями, а другие — нет. Если HRESULT сопоставляется с определенным исключением, ThrowExceptionForHR создает экземпляр исключения и создает его. В противном случае он создает экземпляр System.Runtime.InteropServices.COMException, инициализирует поле кода ошибки с помощью HRESULT и создает это исключение. Параметр errorInfo используется для получения дополнительных сведений об ошибке.

Сведения о сопоставлении каждого HRESULT с сопоставимым классом исключений в платформа .NET Framework см. в разделе Практическое руководство. Сопоставление HRESULTs и исключений.

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

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