Marshal.ThrowExceptionForHR Metodo

Definizione

Genera un'eccezione con un valore HRESULT di errore specifico.

Overload

Nome Descrizione
ThrowExceptionForHR(Int32)

Genera un'eccezione con un valore HRESULT di errore specifico.

ThrowExceptionForHR(Int32, IntPtr)

Genera un'eccezione con un HRESULT di errore specifico, in base all'interfaccia IErrorInfo specificata.

ThrowExceptionForHR(Int32, Guid, IntPtr)

ThrowExceptionForHR(Int32)

Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs

Genera un'eccezione con un valore HRESULT di 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

HRESULT corrispondente all'eccezione desiderata.

Attributi

Commenti

Questo metodo crea un oggetto eccezione per l'errore HRESULT specificato. Se HRESULT è 0 o positivo (codice di esito positivo), 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 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 Come: 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)

Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs
Origine:
Marshal.cs

Genera un'eccezione con un HRESULT di errore specifico, in base all'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

HRESULT corrispondente all'eccezione desiderata.

errorInfo
IntPtr

nativeint

Puntatore all'interfaccia IErrorInfo che fornisce altre informazioni sull'errore. È possibile specificare IntPtr(0) di usare l'interfaccia IErrorInfo corrente o IntPtr(-1) di ignorare l'interfaccia IErrorInfo corrente e costruire l'eccezione solo dal codice di errore.

Attributi

Commenti

Questo metodo crea un oggetto eccezione per l'errore HRESULT specificato. Se HRESULT è 0 o positivo (codice di esito positivo), il metodo restituisce senza creare o generare un'eccezione.

Il ThrowExceptionForHR metodo rilascia il errorInfo parametro, riducendo il numero di 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 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 Come: Eseguire il mapping di HRESULT ed eccezioni.

Vedi anche

Si applica a

ThrowExceptionForHR(Int32, Guid, IntPtr)

Origine:
Marshal.cs
Origine:
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)

Parametri

errorCode
Int32
iid
Guid
pUnk
IntPtr

nativeint

Si applica a