Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

COMException classe

 

Date de publication : juillet 2016

Exception levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM.

Espace de noms:   System.Runtime.InteropServices
Assembly:  mscorlib (dans mscorlib.dll)

System.Object
  System.Exception
    System.SystemException
      System.Runtime.InteropServices.ExternalException
        System.Runtime.InteropServices.COMException
          System.DirectoryServices.DirectoryServicesCOMException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class COMException : ExternalException

NomDescription
System_CAPS_pubmethodCOMException()

Initialise une nouvelle instance de la classe COMException avec des valeurs par défaut.

System_CAPS_protmethodCOMException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la COMException classe à partir des données de sérialisation.

System_CAPS_pubmethodCOMException(String)

Initialise une nouvelle instance de la COMException classe avec un message spécifié.

System_CAPS_pubmethodCOMException(String, Exception)

Initialise une nouvelle instance de la classe COMException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception.

System_CAPS_pubmethodCOMException(String, Int32)

Initialise une nouvelle instance de la COMException classe avec un code d’erreur et le message spécifié.

NomDescription
System_CAPS_pubpropertyData

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.(Hérité de Exception.)

System_CAPS_pubpropertyErrorCode

Obtient le HRESULT de l’erreur.(Hérité de ExternalException.)

System_CAPS_pubpropertyHelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.(Hérité de Exception.)

System_CAPS_pubpropertyHResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.(Hérité de Exception.)

System_CAPS_pubpropertyInnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.(Hérité de Exception.)

System_CAPS_pubpropertyMessage

Obtient un message qui décrit l'exception actuelle.(Hérité de Exception.)

System_CAPS_pubpropertySource

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.(Hérité de Exception.)

System_CAPS_pubpropertyStackTrace

Obtient une représentation sous forme de chaîne des objets immédiats sur la pile des appels. (Hérité de Exception.)

System_CAPS_pubpropertyTargetSite

Obtient la méthode qui lève l'exception actuelle.(Hérité de Exception.)

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures.(Hérité de Exception.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.(Hérité de Exception.)

System_CAPS_pubmethodGetType()

Obtient le type au moment de l'exécution de l'instance actuelle.(Hérité de Exception.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Convertit le contenu de l’exception en une chaîne.(Remplace ExternalException.ToString().)

NomDescription
System_CAPS_proteventSerializeObjectState

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.(Hérité de Exception.)

Le common language runtime transforme des HRESULT connus en exceptions du .NET Framework, l’activation des objets COM de retourner des informations d’erreur pertinentes aux clients managés. HRESULT à un mappage de l’exception fonctionne également dans l’autre direction, en retournant des HRESULT spécifiques aux clients non managés. Pour plus d’informations de mappage, consultez How to: Map HRESULTs and Exceptions.

Lorsque le runtime rencontre un HRESULT inconnu (un HRESULT qui ne dispose pas d’une exception correspondante spécifique), il lève une instance de la COMException classe. Cette exception polyvalente expose les mêmes membres que n’importe quelle exception et hérite d’un public ErrorCode propriété qui contient le HRESULT retourné par l’appelé. Si un message d’erreur est disponible pour le runtime (obtenu à partir de la IErrorInfo interface ou le Err objet en Visual Basic, ou dans certains cas à partir du système d’exploitation), le message est retourné à l’appelant. Si toutefois le développeur du composant COM a omis d'inclure un message d'erreur, le runtime retourne le HRESULT à huit chiffres à la place d'une chaîne de message. Présence d’un HRESULT permet à l’appelant déterminer la cause de l’exception générique.

Voici certaines considérations pour la résolution des problèmes un COMException exception.

Vérifiez le ErrorCode propriété

Lorsque le runtime rencontre un HRESULT inconnu et lève un COMException exception, le ErrorCode propriété inclut le message d’erreur ou, si un message d’erreur n’est pas disponible, la valeur HRESULT à huit chiffres. Le message d’erreur ou la valeur HRESULT permettre vous aider à déterminer la cause de l’exception.

Pour obtenir la liste de valeurs HRESULT, consultez Common HRESULT Values.

Les arguments à liaison tardive et les objets Microsoft Office

Lors du passage des arguments de la liaison tardive aux méthodes des objets Microsoft Office, un COMException exception peut être levée lorsque les objets sont des objets COM. Le classeur tardif suppose que ces appels de méthode impliquent un paramètre ByRef et que la propriété que vous passez a un accesseur set. Si la propriété n’existe pas, le .NET Framework génère un MissingMethodException exception (avec un CORE_E_MISSINGMETHOD HRESULT). Pour contourner ce problème, utilisez des objets à liaison anticipée ou passez une variable au lieu d'une propriété de l'objet.

Visual Studio et le processus d’hébergement

COM permet la communication entre Visual Studio et le hosting process. Car il est utilisé avant l’exécution du code, un appel à CoInitializeSecurity entraîne la levée de cette exception.

Dans certains cas, l’exécution de Visual Studio en tant qu’administrateur peut résoudre le problème. You can also disable the hosting process.

Bien que vous pouvez utiliser la COMException classe pour retourner des HRESULT spécifiques aux clients non managés, lever une exception .NET Framework spécifique est supérieure à l’aide d’une exception générique. Considérez que les clients gérés ainsi que les clients non managés peuvent utiliser votre objet .NET Framework et lever un HRESULT à un appelant managé est moins compréhensible que de lever une exception.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: