Marshal.ThrowExceptionForHR Méthode

Définition

Lève une exception avec une valeur HRESULT d'échec spécifique.

Surcharges

ThrowExceptionForHR(Int32)

Lève une exception avec une valeur HRESULT d'échec spécifique.

ThrowExceptionForHR(Int32, IntPtr)

Lève une exception avec un HRESULT d’échec spécifique, en fonction de l’interface IErrorInfo spécifiée.

ThrowExceptionForHR(Int32)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Lève une exception avec une valeur HRESULT d'échec spécifique.

C#
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode);
C#
public static void ThrowExceptionForHR (int errorCode);

Paramètres

errorCode
Int32

HRESULT correspondant à l'exception souhaitée.

Attributs

Remarques

Cette méthode crée un objet d’exception pour l’échec HRESULT spécifié. Si le HRESULT est 0 ou positif (code de réussite), la méthode retourne sans créer ou lever d’exception.

Notez que la ThrowExceptionForHR(Int32) méthode retourne une exception basée sur l’interface IErrorInfo du thread actif, le cas échéant. Dans ce cas, le errorCode paramètre est ignoré.

Certains HRESULT d’échec sont mappés à des exceptions définies, tandis que d’autres ne le font pas. Si le HRESULT mappe à une exception définie, ThrowExceptionForHR crée une instance de l’exception et la lève. Sinon, il crée une instance de COMException, initialise le champ de code d’erreur avec le HRESULT et lève cette exception. Quand ThrowExceptionForHR est appelé, il tente de récupérer des informations supplémentaires concernant l’erreur à l’aide de la fonction GetErrorInfo non managée.

Pour le mappage de chaque HRESULT à sa classe d’exception comparable dans le .NET Framework, consultez Guide pratique pour mapper les HRESULT et exceptions.

Parfois, ThrowExceptionForHR peut renvoyer une exception d’un appel COM précédent. Dans ce cas, vous pouvez utiliser la solution de contournement suivante et passer IntPtr(-1) comme deuxième paramètre () :errorInfo

C#
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ThrowExceptionForHR(Int32, IntPtr)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Lève une exception avec un HRESULT d’échec spécifique, en fonction de l’interface IErrorInfo spécifiée.

C#
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
C#
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);

Paramètres

errorCode
Int32

HRESULT correspondant à l'exception souhaitée.

errorInfo
IntPtr

Pointeur vers l’interface IErrorInfo qui fournit plus d’informations sur l’erreur. Spécifiez IntPtr(0) pour utiliser l’interface IErrorInfo actuelle ou IntPtr(-1) pour ignorer l’interface IErrorInfo actuelle et construire l’exception uniquement à partir du code d’erreur.

Attributs

Remarques

Cette méthode crée un objet d’exception pour l’échec HRESULT spécifié. Si le HRESULT est 0 ou positif (code de réussite), la méthode retourne sans créer ou lever d’exception.

La ThrowExceptionForHR méthode libère le errorInfo paramètre, ce qui diminue le nombre de références COM de l’interface IErrorInfo .

Notez que la ThrowExceptionForHR méthode retourne une exception basée sur l’interface IErrorInfo du thread actif, le cas échéant. Dans ce cas, le errorCode paramètre est ignoré.

Certains HRESULT d’échec sont mappés à des exceptions définies, tandis que d’autres ne le font pas. Si le HRESULT mappe à une exception définie, ThrowExceptionForHR crée une instance de l’exception et la lève. Sinon, il crée une instance de System.Runtime.InteropServices.COMException, initialise le champ de code d’erreur avec le HRESULT et lève cette exception. Le errorInfo paramètre est utilisé pour récupérer des informations supplémentaires concernant l’erreur.

Pour le mappage de chaque HRESULT à sa classe d’exception comparable dans le .NET Framework, consultez Guide pratique pour mapper les HRESULT et exceptions.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0