Marshal.ThrowExceptionForHR Метод

Определение

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

Перегрузки

Имя Описание
ThrowExceptionForHR(Int32)

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

ThrowExceptionForHR(Int32, IntPtr)

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

ThrowExceptionForHR(Int32, Guid, IntPtr)

ThrowExceptionForHR(Int32)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
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 параметр игнорируется.

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

Сопоставление каждого HRESULT с сопоставимым классом исключений в .NET Framework см. в разделе How to: Map HRESULTs and Exceptions.

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

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

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

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

ThrowExceptionForHR(Int32, IntPtr)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
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 параметр игнорируется.

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

Сопоставление каждого HRESULT с сопоставимым классом исключений в .NET Framework см. в разделе How to: Map HRESULTs and Exceptions.

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

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

ThrowExceptionForHR(Int32, Guid, IntPtr)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
public:
 static void ThrowExceptionForHR(int errorCode, Guid % iid, IntPtr pUnk);
public static void ThrowExceptionForHR(int errorCode, in Guid iid, IntPtr pUnk);
static member ThrowExceptionForHR : int * Guid * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, ByRef iid As Guid, pUnk As IntPtr)

Параметры

errorCode
Int32
iid
Guid
pUnk
IntPtr

nativeint

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