Marshal.ThrowExceptionForHR Methode

Definition

Löst eine Ausnahme mit einem bestimmten HRESULT-Fehlerwert aus.

Überlädt

ThrowExceptionForHR(Int32)

Löst eine Ausnahme mit einem bestimmten HRESULT-Fehlerwert aus.

ThrowExceptionForHR(Int32, IntPtr)

Löst eine Ausnahme mit einem bestimmten Fehler-HRESULT auf Grundlage der angegebenen IErrorInfo-Schnittstelle aus.

ThrowExceptionForHR(Int32)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Löst eine Ausnahme mit einem bestimmten HRESULT-Fehlerwert aus.

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)

Parameter

errorCode
Int32

Das der gewünschten Ausnahme entsprechende HRESULT.

Attribute

Hinweise

Diese Methode erstellt ein Ausnahmeobjekt für das angegebene Fehler-HRESULT. Wenn das HRESULT 0 oder positiv ist (ein Erfolgscode), gibt die Methode zurück, ohne dass eine Ausnahme erstellt oder ausgelöst wird.

Beachten Sie, dass die ThrowExceptionForHR(Int32) -Methode eine Ausnahme basierend auf der IErrorInfo-Schnittstelle des aktuellen Threads zurückgibt, sofern eine festgelegt ist. In diesem Fall wird der errorCode Parameter ignoriert.

Einige fehlerbasierte HRESULTs werden definierten Ausnahmen zugeordnet, andere hingegen nicht. Wenn das HRESULT einer definierten Ausnahme zugeordnet ist, ThrowExceptionForHR erstellt eine Instanz der Ausnahme und löst sie aus. Andernfalls wird eine Instanz von COMExceptionerstellt, das Fehlercodefeld mit dem HRESULT initialisiert und diese Ausnahme ausgelöst. Wenn ThrowExceptionForHR aufgerufen wird, wird versucht, zusätzliche Informationen zum Fehler mithilfe der nicht verwalteten GetErrorInfo-Funktion abzurufen.

Informationen zur Zuordnung von jedem HRESULT zu seiner vergleichbaren Ausnahmeklasse in .NET Framework finden Sie unter Vorgehensweise: Zuordnen von HRESULTs und Ausnahmen.

ThrowExceptionForHR Gelegentlich gibt möglicherweise eine Ausnahme von einem vorherigen COM-Aufruf zurück. In diesem Fall können Sie die folgende Problemumgehung verwenden und als zweiten Parameter (errorInfo) übergebenIntPtr(-1):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Weitere Informationen

Gilt für:

ThrowExceptionForHR(Int32, IntPtr)

Quelle:
Marshal.cs
Quelle:
Marshal.cs
Quelle:
Marshal.cs

Löst eine Ausnahme mit einem bestimmten Fehler-HRESULT auf Grundlage der angegebenen IErrorInfo-Schnittstelle aus.

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)

Parameter

errorCode
Int32

Das der gewünschten Ausnahme entsprechende HRESULT.

errorInfo
IntPtr

nativeint

Ein Zeiger auf die IErrorInfo-Schnittstelle, die weitere Informationen über den Fehler bereitstellt. Sie können IntPtr(0) angeben, um die aktuelle IErrorInfo -Schnittstelle zu verwenden, oder Sie können IntPtr(-1) angeben, um die aktuelle IErrorInfo -Schnittstelle zu ignorieren und die Ausnahme direkt aus dem Fehlercode zu erstellen.

Attribute

Hinweise

Diese Methode erstellt ein Ausnahmeobjekt für das angegebene Fehler-HRESULT. Wenn das HRESULT 0 oder positiv ist (ein Erfolgscode), gibt die Methode zurück, ohne dass eine Ausnahme erstellt oder ausgelöst wird.

Die ThrowExceptionForHR -Methode gibt den errorInfo Parameter frei, wodurch die COM-Verweisanzahl der IErrorInfo-Schnittstelle verringert wird.

Beachten Sie, dass die ThrowExceptionForHR -Methode eine Ausnahme basierend auf der IErrorInfo-Schnittstelle des aktuellen Threads zurückgibt, sofern eine festgelegt ist. In diesem Fall wird der errorCode Parameter ignoriert.

Einige fehlerbasierte HRESULTs werden definierten Ausnahmen zugeordnet, andere hingegen nicht. Wenn das HRESULT einer definierten Ausnahme zugeordnet ist, ThrowExceptionForHR erstellt eine Instanz der Ausnahme und löst sie aus. Andernfalls wird eine Instanz von System.Runtime.InteropServices.COMExceptionerstellt, das Fehlercodefeld mit dem HRESULT initialisiert und diese Ausnahme ausgelöst. Der errorInfo Parameter wird verwendet, um zusätzliche Informationen zum Fehler abzurufen.

Informationen zur Zuordnung von jedem HRESULT zu seiner vergleichbaren Ausnahmeklasse in .NET Framework finden Sie unter Vorgehensweise: Zuordnen von HRESULTs und Ausnahmen.

Weitere Informationen

Gilt für: