Marshal.ThrowExceptionForHR Metod

Definition

Utlöser ett undantag med ett specifikt HRESULT-felvärde.

Överlagringar

Name Description
ThrowExceptionForHR(Int32)

Utlöser ett undantag med ett specifikt HRESULT-felvärde.

ThrowExceptionForHR(Int32, IntPtr)

Utlöser ett undantag med ett specifikt fel i HRESULT baserat på det angivna IErrorInfo-gränssnittet .

ThrowExceptionForHR(Int32)

Utlöser ett undantag med ett specifikt HRESULT-felvärde.

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)

Parametrar

errorCode
Int32

HRESULT som motsvarar det önskade undantaget.

Attribut

Kommentarer

Den här metoden skapar ett undantagsobjekt för det angivna felet HRESULT. Om HRESULT är 0 eller positiv (en lyckad kod) returnerar metoden utan att skapa eller utlösa ett undantag.

Observera att ThrowExceptionForHR(Int32) metoden returnerar ett undantag baserat på IErrorInfo-gränssnittet för den aktuella tråden om en har angetts. När detta händer ignoreras parametern errorCode .

Vissa hresult-fel mappas till definierade undantag, medan andra inte gör det. Om HRESULT mappar till ett definierat undantag ThrowExceptionForHR skapar du en instans av undantaget och genererar det. Annars skapar den en instans av COMException, initierar felkodsfältet med HRESULT och genererar det undantaget. När ThrowExceptionForHR anropas försöker den hämta extra information om felet med hjälp av den ohanterade funktionen GetErrorInfo .

För mappning från varje HRESULT till dess jämförbara undantagsklass i .NET Framework, se How to: Map HRESULTs and Exceptions.

ThrowExceptionForHR Ibland kan returnera ett undantag från ett tidigare COM-anrop. I det här fallet kan du använda följande lösning och skicka IntPtr(-1) som den andra parametern (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Se även

Gäller för

ThrowExceptionForHR(Int32, IntPtr)

Utlöser ett undantag med ett specifikt fel i HRESULT baserat på det angivna IErrorInfo-gränssnittet .

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)

Parametrar

errorCode
Int32

HRESULT som motsvarar det önskade undantaget.

errorInfo
IntPtr

nativeint

En pekare till IErrorInfo-gränssnittet som innehåller mer information om felet. Du kan ange IntPtr(0) att du vill använda det aktuella IErrorInfo-gränssnittet eller IntPtr(-1) ignorera det aktuella IErrorInfo-gränssnittet och skapa undantaget bara från felkoden.

Attribut

Kommentarer

Den här metoden skapar ett undantagsobjekt för det angivna felet HRESULT. Om HRESULT är 0 eller positiv (en lyckad kod) returnerar metoden utan att skapa eller utlösa ett undantag.

Metoden ThrowExceptionForHR släpper parametern errorInfo , vilket minskar COM-referensantalet för IErrorInfo-gränssnittet .

Observera att ThrowExceptionForHR metoden returnerar ett undantag baserat på IErrorInfo-gränssnittet för den aktuella tråden om en har angetts. När detta händer ignoreras parametern errorCode .

Vissa hresult-fel mappas till definierade undantag, medan andra inte gör det. Om HRESULT mappar till ett definierat undantag ThrowExceptionForHR skapar du en instans av undantaget och genererar det. Annars skapar den en instans av System.Runtime.InteropServices.COMException, initierar felkodsfältet med HRESULT och genererar det undantaget. Parametern errorInfo används för att hämta extra information om felet.

För mappning från varje HRESULT till dess jämförbara undantagsklass i .NET Framework, se How to: Map HRESULTs and Exceptions.

Se även

Gäller för