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