Partager via


Dépannage des exceptions : System.Runtime.InteropServices.COMException

Mise à jour : novembre 2007

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

Conseils associés

  • Vérifier la propriété ErrorCode de l'exception pour déterminer le HRESULT retourné par l'objet COM
    Lorsque le runtime rencontre un HRESULT inconnu, il lève une exception COMException qui inclut une propriété ErrorCode publique qui contient le HRESULT retourné par l'appel. Si un message d'erreur est disponible pour le runtime, 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. La présence d'un HRESULT permet à l'appelant de déterminer la cause de l'exception. Pour plus d'informations, consultez Comment : mapper des HRESULT et des exceptions.

  • Désactiver le processus d'hébergement.
    COM permet la communication entre Visual Studio et le processus d'hébergement. Comme il est utilisé avant l'exécution du code, un appel à CoInitializeSecurity entraîne la levée de cette exception.

Notes

Le Common Language Runtime transforme des HRESULT connus en exceptions .NET, ce qui permet à des objets COM de retourner des informations d'erreur pertinentes aux clients managés. Le mappage d'un HRESULT à une exception fonctionne également dans l'autre direction, en retournant des HRESULT spécifiques aux clients non managés.

Lorsque des paramètres à liaison tardive sont passés à des méthodes d'objets Microsoft Office, une exception COMException 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'a pas d'accesseur, le .NET Framework génère une exception MissingMethodException (HRESULT CORE_E_MISSINGMETHOD). Pour contourner ce problème, utilisez des objets à liaison anticipée ou passez une variable au lieu d'une propriété de l'objet.

Voir aussi

Tâches

Comment : en savoir plus sur une exception avec l'Assistant Exception

Concepts

Gestion des exceptions COM Interop

Référence

COMException