تُستخدم كفئة استثناء لـ API لتغليف أخطاء إدارة الاتصال والإبلاغ عنها عبر رموز الأخطاء.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: becb2133e102المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم كفئة استثناء لـ API لتغليف أخطاء إدارة الاتصال والإبلاغ عنها عبر رموز الأخطاء.
تُستخدم الفئة ara::com::ComException في AUTOSAR Adaptive كفئة استثناء مركزية للإشارة إلى الأخطاء عند استدعاءات API الخاصة بالاتصال [SWS_CM_11327]. تقوم بتغليف ara::core::ErrorCode ويتم إنشاء مثيل لها وإطلاقها عند فشل العمليات، مع تعريف منشئها بأنه آمن ضد الاستثناءات وغير طارح [SWS_CM_11328]. وإذا تم تعطيل استثناءات C++ في سلسلة أدوات المترجم، تُستبعد الأحمال الزائدة لـ API الطارحة المقابلة تماماً من دقة التحميل الزائد. يلتقط المستدعون كائن الاستثناء لتحليل رمز الخطأ المتضمن واتخاذ تدابير معالجة الخطأ.
السياق
تُستخدم الفئة ara::com::ComException في الوحدة com لـ AUTOSAR Adaptive Platform كفئة استثناء متخصصة للإشارة إلى الأخطاء عند استدعاءات API الخاصة بالاتصال [SWS_CM_11327]. وترث علناً من الفئة الأساسية ara::core::Exception ومُصرَّح عنها كـ final. يوضح هذا التكامل المباشر في معمارية معالجة الأخطاء الشاملة لـ Adaptive Platform. ومن خلال تمييزها كـ final، يُرجَّح أن الفئة مصممة كنوع استثناء محكم ومختوم ليس مخصصاً لمزيد من التسلسل الهرمي للاشتقاق. سؤال Q-2454b5b73295287b (مفتوح)
تتمثل المهمة الأساسية لـ ara::com::ComException في تغليف حالة خطأ حدثت في شكل ara::core::ErrorCode ونقلها عبر آلية استثناءات C++ إلى الطبقات المستدعية [SWS_CM_11328]. يتم توفير التصريح والتعريف عبر الترويسة #include "ara/com/com_error_domain.h"[SWS_CM_11328]. ويعمل كأطراف تفاعل مركزية في ذلك كل من برمجيات التطبيق المستخدمة، ودوال الخدمة وAPI الداخلية لإدارة الاتصال، بالإضافة إلى أنواع نطاق الخطأ ara::core::ErrorCode.
هذا المنشئ مُصرَّح عنه بـ noexcept ويمتلك الخاصية exception safe[SWS_CM_11328]. يضمن ذلك عدم إمكانية حدوث استثناءات أخرى أثناء بناء كائن الاستثناء نفسه. وبعد الإطلاق عبر throw، يتم نقل الكائن كجزء من عملية فض المكدس (Stack Unwinding) حتى يتم ربطه في كتلة catch مطابقة في الطبقة المستدعية. وفيما يتعلق بعلاقات الملكية، يتم تدمير المثيل تلقائياً على المكدس بعد مغادرة الكتلة المعالِجة. لا تُظهر الفئة أي انتقالات حالة داخلية بمفهوم آلة الحالة؛ وتظل حالتها غير قابلة للتغيير بعد التهيئة الأولية برمز الخطأ.
مسار الاستخدام
يصف مسار الاستخدام النموذجي تسلسل اكتشاف الخطأ وإطلاق الاستثناء والمعالجة اللاحقة:
يلتقط التطبيق الاستثناء في كتلة مناسبة. ويُرجَّح أن يتم الالتقاط من جانب التطبيق عبر مرجع ثابت (const ara::com::ComException&) لتجنب عمليات النسخ. سؤال Q-5270e026eeac8be7 (مفتوح)
عبر واجهة الفئة الأساسية، يصل المستدعي إلى ara::core::ErrorCode المتضمَّن وينفذ خطوات التشخيص أو التعويض [SWS_CM_11328].
أمان النوع في المنشئ: نظراً لأن المنشئ مُصرَّح عنه كـ explicit، يتم منع تحويلات النوع الضمنية عند تمرير ara::core::ErrorCode[SWS_CM_11328].
الالتقاط الهرمي: نظراً لأن ara::com::ComException ترث من ara::core::Exception، يمكن للمستدعين معالجة الاستثناءات إما على وجه التحديد كـ ara::com::ComException أو بشكل عام عبر معالجات للفئة الأساسية.
يعتمد هذا الدليل على مواصفة AUTOSAR Adaptive R25-11. تستند جميع البيانات والمراجع حصراً إلى مقتطفات المواصفة المقدمة.
مخطط الفئات UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني