Marshal.ThrowExceptionForHR Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
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)
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
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)
Voir aussi
S’applique à
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.
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)
Paramètres
- errorCode
- Int32
HRESULT correspondant à l'exception souhaitée.
- errorInfo
-
IntPtr
nativeint
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.