Marshal.ThrowExceptionForHR Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Genera un'eccezione con un valore HRESULT di un errore specifico.
Overload
ThrowExceptionForHR(Int32) |
Genera un'eccezione con un valore HRESULT di un errore specifico. |
ThrowExceptionForHR(Int32, IntPtr) |
Genera un'eccezione con un valore HRESULT di errore specifico, basato sull'interfaccia IErrorInfo specificata. |
ThrowExceptionForHR(Int32)
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
Genera un'eccezione con un valore HRESULT di un errore specifico.
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)
Parametri
- errorCode
- Int32
Valore HRESULT corrispondente all'eccezione desiderata.
- Attributi
Commenti
Questo metodo crea un oggetto eccezione per l'errore HRESULT specificato. Se HRESULT è 0 o positivo (codice riuscito), il metodo restituisce senza creare o generare un'eccezione.
Si noti che il ThrowExceptionForHR(Int32) metodo restituisce un'eccezione basata sull'interfaccia IErrorInfo del thread corrente se è impostata. In questo caso, il errorCode
parametro viene ignorato.
Alcuni errori HRESULTs vengono mappati alle eccezioni definite, mentre altri non lo fanno. Se HRESULT esegue il mapping a un'eccezione definita, ThrowExceptionForHR crea un'istanza dell'eccezione e la genera. In caso contrario, crea un'istanza di COMException, inizializza il campo del codice di errore con HRESULT e genera tale eccezione. Quando ThrowExceptionForHR viene richiamato, tenta di recuperare informazioni aggiuntive relative all'errore usando la funzione GetErrorInfo non gestita.
Per il mapping da ogni HRESULT alla classe di eccezione paragonabile in .NET Framework, vedere Procedura: Mapping di HRESULTs e Eccezioni.
Occasionalmente, ThrowExceptionForHR potrebbe restituire un'eccezione da una chiamata COM precedente. In questo caso, è possibile usare la soluzione alternativa seguente e passare IntPtr(-1)
come secondo parametro (errorInfo
):
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)
Vedi anche
Si applica a
ThrowExceptionForHR(Int32, IntPtr)
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
- Origine:
- Marshal.cs
Genera un'eccezione con un valore HRESULT di errore specifico, basato sull'interfaccia IErrorInfo specificata.
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)
Parametri
- errorCode
- Int32
Valore HRESULT corrispondente all'eccezione desiderata.
- errorInfo
-
IntPtr
nativeint
Puntatore all'interfaccia IErrorInfo che fornisce informazioni aggiuntive sull'errore. È possibile specificare IntPtr(0)
per usare l'interfaccia IErrorInfo corrente oppure IntPtr(-1)
per ignorare l'interfaccia IErrorInfo corrente e costruire l'eccezione unicamente dal codice errore.
- Attributi
Commenti
Questo metodo crea un oggetto eccezione per l'errore HRESULT specificato. Se HRESULT è 0 o positivo (codice riuscito), il metodo restituisce senza creare o generare un'eccezione.
Il ThrowExceptionForHR metodo rilascia il parametro, riducendo il errorInfo
conteggio dei riferimenti COM dell'interfaccia IErrorInfo .
Si noti che il ThrowExceptionForHR metodo restituisce un'eccezione basata sull'interfaccia IErrorInfo del thread corrente se è impostata. In questo caso, il errorCode
parametro viene ignorato.
Alcuni errori HRESULTs vengono mappati alle eccezioni definite, mentre altri non lo fanno. Se HRESULT esegue il mapping a un'eccezione definita, ThrowExceptionForHR crea un'istanza dell'eccezione e la genera. In caso contrario, crea un'istanza di System.Runtime.InteropServices.COMException, inizializza il campo del codice di errore con HRESULT e genera tale eccezione. Il errorInfo
parametro viene usato per recuperare informazioni aggiuntive relative all'errore.
Per il mapping da ogni HRESULT alla classe di eccezione paragonabile in .NET Framework, vedere Procedura: Mapping di HRESULTs e Eccezioni.