Marshal.ThrowExceptionForHR Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce una excepción con un valor HRESULT de error específico.
Sobrecargas
ThrowExceptionForHR(Int32) |
Se produce una excepción con un valor HRESULT de error específico. |
ThrowExceptionForHR(Int32, IntPtr) |
Inicia una excepción con un valor HRESULT de error concreto, basado en la interfaz IErrorInfo especificada. |
ThrowExceptionForHR(Int32)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Se produce una excepción con un valor HRESULT de error específico.
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)
Parámetros
- errorCode
- Int32
HRESULT correspondiente a la excepción deseada.
- Atributos
Comentarios
Este método crea un objeto de excepción para el hrESULT de error especificado. Si HRESULT es 0 o positivo (un código correcto), el método devuelve sin crear o producir una excepción.
Tenga en cuenta que el ThrowExceptionForHR(Int32) método devuelve una excepción basada en la interfaz IErrorInfo del subproceso actual si se establece uno. Cuando esto sucede, se omite el errorCode
parámetro .
Algunos HRESULT de error se asignan a excepciones definidas, mientras que otras no. Si HRESULT se asigna a una excepción definida, ThrowExceptionForHR crea una instancia de la excepción y la inicia. De lo contrario, crea una instancia de COMException, inicializa el campo de código de error con HRESULT y produce esa excepción. Cuando ThrowExceptionForHR se invoca, intenta recuperar información adicional sobre el error mediante la función GetErrorInfo no administrada.
Para la asignación de cada HRESULT a su clase de excepción comparable en .NET Framework, vea How to: Map HRESULTs and Exceptions.
En ocasiones, ThrowExceptionForHR podría devolver una excepción de una llamada COM anterior. En este caso, puede usar la siguiente solución alternativa y pasar IntPtr(-1)
como segundo parámetro (errorInfo
):
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)
Consulte también
Se aplica a
ThrowExceptionForHR(Int32, IntPtr)
- Source:
- Marshal.cs
- Source:
- Marshal.cs
- Source:
- Marshal.cs
Inicia una excepción con un valor HRESULT de error concreto, basado en la interfaz IErrorInfo especificada.
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)
Parámetros
- errorCode
- Int32
HRESULT correspondiente a la excepción deseada.
- errorInfo
-
IntPtr
nativeint
Puntero a la interfaz IErrorInfo que proporciona más información sobre el error. Puede especificar IntPtr(0)
para que use la interfaz IErrorInfo actual o IntPtr(-1)
para omitir la interfaz IErrorInfo actual y construir la excepción del código de error únicamente.
- Atributos
Comentarios
Este método crea un objeto de excepción para el hrESULT de error especificado. Si HRESULT es 0 o positivo (un código correcto), el método devuelve sin crear o producir una excepción.
El ThrowExceptionForHR método libera el errorInfo
parámetro, lo que reduce el recuento de referencias COM de la interfaz IErrorInfo .
Tenga en cuenta que el ThrowExceptionForHR método devuelve una excepción basada en la interfaz IErrorInfo del subproceso actual si se establece uno. Cuando esto sucede, se omite el errorCode
parámetro .
Algunos HRESULT de error se asignan a excepciones definidas, mientras que otras no. Si HRESULT se asigna a una excepción definida, ThrowExceptionForHR crea una instancia de la excepción y la inicia. De lo contrario, crea una instancia de System.Runtime.InteropServices.COMException, inicializa el campo de código de error con HRESULT y produce esa excepción. El errorInfo
parámetro se usa para recuperar información adicional sobre el error.
Para la asignación de cada HRESULT a su clase de excepción comparable en .NET Framework, vea How to: Map HRESULTs and Exceptions.