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 см. в разделе Практическое руководство. Сопоставление HRESULT и исключений.
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 см. в разделе Практическое руководство. Сопоставление HRESULT и исключений.