تُغلّف أخطاء الاتصال العامة للبرمجية الوسيطة وتحددها من أجل معالجة موحدة للأخطاء.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 13073fe45989المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُغلّف أخطاء الاتصال العامة للبرمجية الوسيطة وتحددها من أجل معالجة موحدة للأخطاء.
تمثل الفئة ara::com::ComErrorDomain نطاق أخطاء الاتصال لتحديد الأخطاء العامة غير الخاصة بواجهة معينة في API الخاصة بـ ara::com ([SWS_CM_11265]). وتُوفّر توصيفات أخطاء لرموز الأخطاء مثل ComErrc::kCommunicationFailure وتتيح الاستعلام عنها عبر Message() أو تحويلها إلى استثناء باستخدام ThrowAsException() ([SWS_CM_11332]). ونظرًا لأن المنشئ الافتراضي الخاص بها محذوف، فإنها تعمل كمثيل نطاق عديم الحالة وآمن بالنسبة للخيوط لـ ara::core::Result الحامل للخطأ.
السياق
تمثل الفئة ara::com::ComErrorDomain نطاق أخطاء الاتصال القياسي لـ Adaptive Platform للمجموعة الوظيفية Communication Management (SWS CommunicationManagement ص. 439). وهي تشتق من الفئة الأساسية ara::core::ErrorDomain وتحدد السياق الدلالي للأخطاء العامة التي يمكن أن تحدث أثناء استدعاءات الدوال أو عمليات نقل البيانات، ولكنها ليست خاصة بـ ServiceInterface فردي ([SWS_CM_11265]). وفي بنية الأخطاء لـ ara::com، تفصل بشكل منهجي بين اضطرابات الاتصال العامة وأخطاء مراقبة E2E وكذلك أخطاء الخدمة الخاصة بالتطبيق (SWS CommunicationManagement §7.5.22.6 «Error Related Data Types»).
تشمل أطراف التفاعل المركزية الخاصة بها كلاً من Adaptive Application وتطبيقات الخدمة والوكيل (Proxy) للبرمجية الوسيطة، بالإضافة إلى نوعي البيانات ara::core::ErrorCode وara::core::Result للنظام الأساسي (EXP ARAComAPI §4.7 «Error Handling»). ولربط النوع الدلالي، تُوفّر الفئة الاسمين المستعارين للنوعين Errc لتعداد رموز الأخطاء ComErrc ([SWS_CM_11336]) وException لفئة الاستثناء المقترنة ComException ([SWS_CM_11337]).
بصفتها فئة مواصفة لنطاق أخطاء، يُمنع إنشاء ara::com::ComErrorDomain من خلال حذف المنشئ الافتراضي ComErrorDomain() = delete; ([SWS_CM_11330]). تفسير: يُرجَّح أن يتم توفير مثيل النطاق ككائن مفرد ثابت (static singleton) عبر المنصة، بحيث لا تضطر مكونات التطبيق إلى إنشاء مثيل النطاق ديناميكيًا أو إدارته. سؤال Q-bf957a108c0a5378 (مفتوح)
يعمل المثيل كواصف عديم الحالة دون سمات متغيرة. وتُعلن جميع الدوال المُوفَّرة مثل Name() ([SWS_CM_11331]) وMessage() ([SWS_CM_11332]) على أنها const noexcept. ويضمن ذلك أمانًا غير مقيد بالنسبة للخيوط عند استعلامات الأخطاء المتزامنة بواسطة خيوط التطبيق والبرمجية الوسيطة المتوازية.
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي اكتشاف الخطأ ونقله وتقييمه عبر واجهات ara::com:
يبدأ التطبيق تفاعل الخدمة، على سبيل المثال عبر عامل الاستدعاء لفئة الدالة operator() ([SWS_CM_00196]).
إذا اكتشفت البرمجية الوسيطة حالة خطأ أثناء المعالجة، مثل حدوث اضطراب في الاتصال أو خطأ تطبيق غير مكوَّن ([SWS_CM_00048])، تُستدعى العملية SetError في Promise المقابل (SWS CommunicationManagement ص. 300).
وفي أثناء ذلك، يُنشأ ara::core::ErrorCode، بحيث يُعيَّن نطاقه إلى ara::com::ComErrorDomain ([SWS_CM_11329]) ويُعيَّن رمزه الرقمي إلى قيمة تعداد محددة مثل ComErrc::kCommunicationFailure ([SWS_CM_10432]).
يميز مفهوم الأخطاء في ara::com بدقة بين الأخطاء القابلة للاسترداد (Recoverable Errors) وانتهاكات البرمجة الجسيمة (Violations أو Corruptions) (EXP ARAComAPI §4.7 «Error Handling»). وتُعالج الأخطاء القابلة للاسترداد عبر ara::core::Result وara::core::ErrorCode، حيث تُعنون رموز أخطاء النطاق ComErrorDomain عبر الاسم المستعار للمعرّف Errc ([SWS_CM_11336]).
إذا حدث انقطاع في النقل أثناء استدعاء عن بعد على سبيل المثال، يبلغ النظام عن ComErrc::kCommunicationFailure ([SWS_CM_10432]). وفي حالة حدوث خطأ تطبيق غير مكوَّن، تلغي البرمجية الوسيطة الاستدعاء وتعيّن بالمثل رمز خطأ مطابقًا للنطاق ([SWS_CM_00048]، SWS CommunicationManagement ص. 300).
إذا كان من المقرر طرح رمز خطأ كاستثناء، يُنشئ ThrowAsException() مثيلًا لاستثناء من النوع ComException ([SWS_CM_11337]) ويطرحه ([SWS_CM_11333]). هذه الدالة ليست آمنة من الاستثناءات (not exception safe) ولا تشارك، وفقًا للمواصفة، في حل التحميل الزائد عند إلغاء تفعيل استثناءات C++ ([SWS_CM_11333]). وفي المقابل، تؤدي انتهاكات النظام غير القابلة للاسترداد مباشرةً إلى إنهاء المنصة ولا تُعالج عبر ComErrorDomain (EXP ARAComAPI §4.7 «Error Handling»).
أُنشئ هذا الدليل بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR الإصدار R25-11.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4c51965f3a93المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تُستخدم دالة العضو Name() للفئة ara::com::ComErrorDomain للاسترداد القياسي للتسمية النصية لنطاق الخطأ هذا ([SWS_CM_11331]). يتم الاستدعاء بشكل متزامن، ولا يتطلب أي معلمات تمرير، ويُرجع مؤشراً ثابتاً من النوع const char * يشير إلى السلسلة النصية المرتبطة ([SWS_CM_11331]). يعتمد التمثيل الدقيق للسلسلة النصية المُرجعة على متطلبات ara::com::ComErrorDomain في [SWS_CORE_90023]. يجب تضمين التصريح عبر الترويسة ara/com/com_error_domain.h ([SWS_CM_11331]).
معالجة الأخطاء والتزامن
التابع مزود بالمواصفة noexcept ومصنف على أنه آمن من الاستثناءات (exception safe) ([SWS_CM_11331]). في حالة حدوث خطأ، لا يتم طرح استثناءات ولا الإبلاغ عن رموز أخطاء محددة، لأنها عملية قراءة بحتة. ونظراً لأنه تتم مخاطبة ثابت سلسلة نصية غير قابل للتعديل حصراً، فمن المرجح أن يكون التابع قابلاً لإعادة الدخول (reentrant) ويدعم الاستدعاءات المتزامنة من عدة مسارات تنفيذ بأمان ودون مزامنة خارجية. سؤال Q-a9f6ae55558ebb1f (مفتوح)
تفاعل
تُعد الدالة جزءاً من معرفات نطاقات الخطأ القياسية ضمن إدارة الاتصالات (AUTOSAR_AP_SWS_CommunicationManagement §1 «Change History»). تم تطبيق مخطط الأسماء والواجهات بشكل متسق عبر النطاقات ذات الصلة: وهكذا يحدد أيضاً نطاق خطأ النهاية-إلى-النهاية (End-to-End) ara::com::e2e::ComE2EErrorDomain عبر [SWS_CM_12507] وكذلك نطاق خطأ SecOC-FVM apext::com::secoc::ComSecOcFvmErrorDomain عبر [SWS_CM_12518] توابع مماثلة Name() للتعريف.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
Creates a new instance of ara::com::ComException from errorCode and throws it. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: bc30613084e7المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تنشئ دالة العضو ThrowAsException لنطاق الخطأ ara::com::ComErrorDomain ([SWS_CM_11333]؛ SWS CommunicationManagement §8.12.4.2.2.3 «ThrowAsException») بشكل متزامن من رمز خطأ ممرر errorCode (من النوع const ara::core::ErrorCode&) نسخة من الاستثناء ara::com::ComException وتطرحها مباشرة. لا تمتلك الواجهة أي قيمة إرجاع (void) ويتم التصريح عنها عبر ملف الترويسة ara/com/com_error_domain.h.
معالجة الأخطاء والأمان من الاستثناءات
تم التصريح عن التوقيع باستخدام noexcept(false) وتحديده على أنه غير آمن من الاستثناءات (not exception safe) ([SWS_CM_11333])، لأن إطلاق الاستثناء هو الغرض الأساسي للدالة. لم يتم تحديد رسائل DET أو DEM معينة لهذا الاستدعاء.
الشروط والقيود الحدية
يُعد كشرط حدي رئيسي: إذا كانت استثناءات C++ معطلة في مجموعة أدوات المترجم (compiler toolchain)، فإن الدالة وفقاً لـ [SWS_CORE_10304] لا تشارك في حل التحميل الزائد ([SWS_CM_11333]). تفسير: في بنيات البرمجيات التي تم فيها تعطيل معالجة الاستثناءات، يُرجح بالتالي ألا تكون الدالة قابلة للاستدعاء في وقت الترجمة. سؤال Q-437f825160e6801e (مفتوح)
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني