Marshal.ThrowExceptionForHR Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.