معالجة استثناءات توافق COM

التعليمات البرمجية المُدارة وغير المُدارة يمكن أن تعمل معاً لمعالجة الاستثناءات. إذا قام أسلوب بطرح استثناء في التعليمات البرمجية التي تمت إدارتها، فيمكن لوقت تشغيل اللغة العامة أن يقوم بتمرير HRESULT إلي كائن COM. في حالة فشل أسلوب في التعليمات البرمجية غير المُدارة بواسطة إرجاع فشل HRESULT، فسيطرح وقت التشغيل استثناء يمكن التقاطه بواسطة تعليمات برمجية تمت إدارتها.

ويقوم وقت التشغيل تلقائياً بتعيين HRESULT من توافق COM لاستثناءات أكثر تحديداً. على سبيل المثال، يصبح E_ACCESSDENIED UnauthorizedAccessException، و يصبح E_OUTOFMEMORY OutOfMemoryException، إلخ.

إذا كان HRESULT هو نتيجة مخصصة أو إذا كان غير معروف لوقت التشغيل، فسيقوم وقت التشغيل بتمرير COMException العام إلى العميل. تحتوي خاصية ErrorCode من COMException على قيمة HRESULT.

للحصول علي مناقشة كاملة توافق COM، راجع إمكانية التشغيل المتداخل COM المتقدمة.

العمل مع IErrorInfo

عندما يتم تمرير خطأ من COM إلى تعليمات برمجية تمت إدارتها، فسيقوم وقت التشغيل بملء كائن الاستثناء بمعلومات الخطأ. توفر كائنات COM التي تدعم IErrorInfo وترجع HRESULTS هذه المعلومات إلي استثناءات التعليمات البرمجية المدارة. على سبيل المثال، يقوم وقت التشغيل بتعيين الوصف من خطأ COM إلي خاصية الاستثناء Message. إذا لم يوفر HRESULT أية معلومات للخطأ إضافية، فسيقوم وقت التشغيل بتعبئة العديد من خصائص الاستثناء بالقيم الافتراضية.

في حالة فشل أسلوب في التعليمات البرمجية غير المُدارة، يمكن تمرير استثناء إلي مقطع تعليمات برمجية تمت إدارتها. يحتوي موضوع HRESULTS و الاستثناءات علي جدول يوضح كيفية تعيين HRESULTS إلى كائنات استثناء وقت التشغيل.

راجع أيضًا:

موارد أخرى

إمكانية التشغيل المتداخل COM المتقدمة

معالجة و طرح الاستثناءات