COMException Classe

Définition

Exception levée quand un HRESULT non reconnu est retourné d'un appel de méthode COM.The exception that is thrown when an unrecognized HRESULT is returned from a COM method call.

public ref class COMException : System::Runtime::InteropServices::ExternalException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits ExternalException
Héritage
Dérivé
Attributs

Remarques

Le common language runtime transforme des HRESULT connus en .NET Framework exceptions, ce qui permet aux objets COM de retourner des informations d’erreur significatives aux clients managés.The common language runtime transforms well-known HRESULTs to .NET Framework exceptions, enabling COM objects to return meaningful error information to managed clients. Le mappage HRESULT à exception fonctionne également dans l’autre direction en retournant des HRESULT spécifiques aux clients non managés.The HRESULT to exception mapping also works in the other direction by returning specific HRESULTs to unmanaged clients. Pour plus d’informations sur le mappage, consultez Procédure: Mappez les valeursHRESULT et les exceptions.For mapping details, see How to: Map HRESULTs and Exceptions.

Quand le runtime rencontre un HRESULT inconnu (un HRESULT qui n’a pas d’exception correspondante spécifique), il lève une instance de la COMException classe.When the runtime encounters an unfamiliar HRESULT (an HRESULT that lacks a specific, corresponding exception), it throws an instance of the COMException class. Cette exception à usage général expose les mêmes membres que n’importe quelle exception et hérite d' ErrorCode une propriété publique qui contient le HRESULT retourné par l’appelé.This all-purpose exception exposes the same members as any exception, and inherits a public ErrorCode property that contains the HRESULT returned by the callee. Si un message d’erreur est disponible pour le runtime (obtenu à partir de l’interface Err IErrorInfo ou de l’objet dans Visual Basic, ou dans certains cas du système d’exploitation), le message est retourné à l’appelant.If an error message is available to the runtime (obtained from the IErrorInfo interface or the Err object in Visual Basic, or in some cases from the operating system), the message is returned to the caller. 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.However, if the COM component developer fails to include an error message, the runtime returns the eight-digit HRESULT in place of a message string. Le fait d’avoir un HRESULT permet à l’appelant de déterminer la cause de l’exception générique.Having an HRESULT allows the caller to determine the cause of the generic exception.

Gestion d’une exception COMExceptionHandling a COMException exception

Voici quelques éléments à prendre en considération pour COMException le dépannage d’une exception.The following are some considerations for troubleshooting a COMException exception.

Vérifier la ErrorCode propriétéCheck the ErrorCode property
Quand le runtime rencontre un HRESULT inconnu et lève une COMException exception, la ErrorCode propriété contient le message d’erreur ou, si un message d’erreur n’est pas disponible, la valeur HRESULT à huit chiffres.When the runtime encounters an unfamiliar HRESULT and throws a COMException exception, the ErrorCode property includes either the error message or, if an error message is unavailable, the eight-digit HRESULT value. Le message d’erreur ou la valeur HRESULT peut vous aider à déterminer la cause de l’exception.The error message or the HRESULT value can help you determine the cause of the exception.

Pour obtenir la liste des valeurs HRESULT, consultez valeurs HRESULT communes.For a list of HRESULT values, see Common HRESULT Values.

Arguments à liaison tardive et objets Microsoft OfficeLate-bound arguments and Microsoft Office objects
Lors du passage des arguments à liaison tardive aux méthodes des objets Microsoft Office COMException , une exception peut être levée lorsque les objets sont des objets com.When passing late-bound arguments to methods of Microsoft Office objects, a COMException exception may be thrown when the objects are COM objects. 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 .The late binder assumes that such method calls involve a ByRef parameter and that the property you pass has a set accessor. Si la propriété ne le fait pas, le .NET Framework MissingMethodException génère une exception ( CORE_E_MISSINGMETHOD avec un HRESULT).If the property does not, the .NET Framework generates a MissingMethodException exception (with a 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.To work around this behavior, use early-bound objects or pass a variable instead of a property of the object.

Visual Studio et le processus d’hébergementVisual Studio and the hosting process
COM est utilisé pour la communication entre Visual Studio et le processus d’hébergement.COM is used to communicate between Visual Studio and the hosting process. Étant donné qu’il est utilisé avant l’exécution du code, un appel à CoInitializeSecurity provoque la levée de cette exception.Because it is used before code runs, a call to CoInitializeSecurity causes this exception to be thrown.

Dans certains cas, l’exécution de Visual Studio en tant qu’administrateur peut résoudre le problème.In some cases, running Visual Studio as Administrator may resolve the issue. Vous pouvez également désactiver le processus d’hébergement.You can also disable the hosting process.

Levée d’une exception COMExceptionThrowing a COMException exception

Bien que vous puissiez utiliser COMException la classe pour retourner des HRESULT spécifiques aux clients non managés, la levée d’une exception .NET Framework spécifique est préférable à l’utilisation d’une exception générique.Although you can use the COMException class to return specific HRESULTs to unmanaged clients, throwing a specific .NET Framework exception is better than using a generic exception. Tenez compte du fait que les clients gérés et les clients non managés peuvent utiliser votre objet .NET Framework, et lever un HRESULT à un appelant managé est moins compréhensible que la levée d’une exception.Consider that managed clients as well as unmanaged clients can use your .NET Framework object, and throwing an HRESULT to a managed caller is less comprehensible than throwing an exception.

Constructeurs

COMException()

Initialise une nouvelle instance de la classe COMException avec des valeurs par défaut.Initializes a new instance of the COMException class with default values.

COMException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe COMException à partir de données de sérialisation.Initializes a new instance of the COMException class from serialization data.

COMException(String)

Initialise une nouvelle instance de la classe COMException avec le message spécifié.Initializes a new instance of the COMException class with a specified message.

COMException(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.Initializes a new instance of the COMException class with a specified error message and a reference to the inner exception that is the cause of this exception.

COMException(String, Int32)

Initialise une nouvelle instance de la classe COMException avec un message et un code d'erreur spécifiés.Initializes a new instance of the COMException class with a specified message and error code.

Propriétés

Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Hérité de Exception)
ErrorCode

Obtient le HRESULT de l’erreur.Gets the HRESULT of the error.

(Hérité de ExternalException)
HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.Gets or sets a link to the help file associated with this exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Hérité de Exception)
InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.Gets the Exception instance that caused the current exception.

(Hérité de Exception)
Message

Obtient un message qui décrit l'exception actuelle.Gets a message that describes the current exception.

(Hérité de Exception)
Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.Gets or sets the name of the application or the object that causes the error.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.Gets a string representation of the immediate frames on the call stack.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l'exception actuelle.Gets the method that throws the current exception.

(Hérité de Exception)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetBaseException()

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.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Hérité de Exception)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)

En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Hérité de Exception)
GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.Gets the runtime type of the current instance.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Convertit le contenu de l'exception en chaîne.Converts the contents of the exception to a string.

Événements

SerializeObjectState

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.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Hérité de Exception)

S’applique à

Voir aussi