Marshal.ThrowExceptionForHR Metodo

Definizione

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)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
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 impostato. In questo caso, il errorCode parametro viene ignorato.

Alcuni HRESULT di errore eseguono il mapping alle eccezioni definite, mentre altre non lo sono. 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 relativa classe di eccezione paragonabile in .NET Framework, vedere Procedura: Eseguire il mapping di HRESULT ed eccezioni.

In alcuni casi, 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)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
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 errorInfo parametro, riducendo il conteggio dei riferimenti COM dell'interfaccia IErrorInfo .

Si noti che il ThrowExceptionForHR metodo restituisce un'eccezione basata sull'interfaccia IErrorInfo del thread corrente, se impostato. In questo caso, il errorCode parametro viene ignorato.

Alcuni HRESULT di errore eseguono il mapping alle eccezioni definite, mentre altre non lo sono. 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 relativa classe di eccezione paragonabile in .NET Framework, vedere Procedura: Eseguire il mapping di HRESULT ed eccezioni.

Vedi anche

Si applica a