تحدد نطاق الخطأ لأخطاء فحص تأمين End-to-End في اتصال Adaptive.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: bfe73c7b7e47المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تحدد نطاق الخطأ لأخطاء فحص تأمين End-to-End في اتصال Adaptive.
تحدد الفئة ara::com::e2e::ComE2EErrorDomain نطاق الخطأ لأخطاء تأمين End-to-End في إدارة الاتصال لـ AUTOSAR Adaptive وتعين رموز الأخطاء للتعداد ComE2EErrc ([SWS_CM_12504]). وإذا فشل فحص E2E من جانب الخادم، يُنقل ara::core::ErrorCode من هذا النطاق في استجابة الخطأ ويُوفَّر من جانب العميل عبر ara::core::Result ([SWS_CM_00033]). وتسمح الفئة عديمة الحالة والآمنة من الاستثناءات بمعالجة الأخطاء إما بالاعتماد على القيمة أو عبر ThrowAsException()، مع العلم أن دالة الاستثناء هذه لا تكون متاحة عند إلغاء تفعيل استثناءات مترجم C++ ([SWS_CM_12509]).
السياق
تحدد الفئة ara::com::e2e::ComE2EErrorDomain نطاق الخطأ لتأمين End-to-End (E2E) داخل إدارة الاتصال (ara::com) في AUTOSAR Adaptive Platform. وهي تشتق اشتقاقًا نهائيًا (final) من الفئة الأساسية ara::core::ErrorDomain وتُغلّف الأخطاء الخاصة بالنطاق التي تحدث أثناء التحقق من صحة رسائل E2E.
يتم إنشاء كائن المثيل عبر المنشئ الافتراضي constexpr ComE2EErrorDomain() noexcept ([SWS_CM_12506]). ومن خلال تمييزه بـ constexpr، يمكن إنشاء نطاق الخطأ بالفعل في وقت الترجمة. ويُرجح أن يُتاح عادةً كنمط مفرد (Singleton) غير قابل للتغيير على مستوى العملية بأكملها، بحيث تظل مراجع النطاق صالحة طوال وقت تشغيل البرنامج. سؤال Q-bd1ba0230650e246 (مفتوح) وبما أن الفئة معلنة كـ final، فلا يُسمح بأي اشتقاقات أخرى.
لا تدير الفئة أي حالة قابلة للتعديل وتوفر أمانًا كاملاً من الاستثناءات ([SWS_CM_12506]). تم الإعلان عن أساليب الفحص Name() ([SWS_CM_12507]) وMessage() ([SWS_CM_12508]) كـ const بالإضافة إلى noexcept. ونتيجة لذلك، يتم ضمان أن يكون وصول القراءة المتزامن عبر خيوط تنفيذ متعددة آمنًا بالنسبة للخيوط (thread-safe) وخاليًا من أعباء المزامنة.
مسار الاستخدام
يحدث مسار الاستخدام النموذجي في إطار نقل فحوصات E2E الفاشلة وتقييمها على جانب العميل:
الفحص وإنشاء الخطأ: عند استلام طلب محمي بواسطة E2E، ينفذ الخادم التحقق من الصحة عبر E2E_check ([SWS_CM_90421]). وإذا فشل هذا الفحص، تُسلسل البرمجية الوسيطة استجابة خطأ تحتوي حمولتها على ara::core::ErrorCode مع ara::com::e2e::ComE2EErrorDomain ([SWS_CM_00033]).
معالجة الخطأ: يمكن للتطبيق إما تقييم الخطأ بناءً على القيمة أو إطلاق استثناء مخصص للنوع عبر ThrowAsException() إذا كانت معالجة الاستثناءات مفعّلة ([SWS_CM_12509]).
إذا حدث خطأ E2E أثناء التحقق من الصحة، فسيتم التعرف عليه عبر التعداد ComE2EErrc، المتاح عبر الاسم المستعار للنوع Errc الخاص بالفئة ([SWS_CM_12504]). ويُرجح أن تتطابق رموز الأخطاء في ComE2EErrc مباشرةً مع قيم النتائج المحددة لـ E2E_check. سؤال Q-07fc2c01567ac537 (مفتوح)
لتمرير الخطأ عبر استثناءات ++C، ينشئ الأسلوب ThrowAsException() مثيلًا لاستثناء من النوع ara::com::e2e::ComE2EException (الاسم المستعار Exception، [SWS_CM_12505]) ويطرحه ([SWS_CM_12509]). تم الإعلان عن الأسلوب كـ noexcept(false). إذا تم تعطيل استثناءات ++C في سلسلة أدوات المترجم، فلن يشارك ThrowAsException() في حل التحميل الزائد وفقًا لـ [SWS_CM_12509]. وبالتالي، في الأنظمة التي لا تدعم الاستثناءات، يجب بالضرورة إجراء معالجة الخطأ عبر فحص ara::core::Result وara::core::ErrorCode القائم على القيمة.
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive R25-11 وقد تم إنشاؤه آليًا.
Creates a new instance of ara::com::e2e::ComE2EException 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 · درجة الحرارة: غير قابل للتحكم · الموجّه: e33607e23f70المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يتم استدعاء الدالة العضو Name للفئة ara::com::e2e::ComE2EErrorDomain ([SWS_CM_12507]) بشكل متزامن وبدون معلمات تمرير. وهي تُستخدم للتعريف الفريد لنطاق الخطأ وتُرجع مؤشرًا إلى ثابت سلسلة نصية ثابتة (const char *)، والذي يمثل اسم نطاق أخطاء اتصال E2E ([SWS_CM_12507]). ويتم توفير إعلان الواجهة عبر ملف الترويسة ara/com/e2e/e2e_error_domain.h ([SWS_CM_12507]).
فيما يتعلق بمعالجة الأخطاء، تم تحديد الدالة على أنها noexcept وexception safe ([SWS_CM_12507]). وبالتالي، فهي لا تطرح استثناءات ولا تفشل أثناء التشغيل؛ ولم يتم تخصيص رموز أخطاء أو آليات لمعالجة الأخطاء لهذا الاستدعاء.
فيما يتعلق بالتزامن والشروط الحدية، لا توجد قيود خاصة على الاستدعاء أو دورة الحياة. وبما أن الطريقة تقرأ سلسلة نصية ثابتة فقط، فمن المرجح أن يكون التنفيذ قابلاً لمعاودة الدخول بالكامل وآمنًا للاستدعاءات المتزامنة من أي خيوط. سؤال Q-c8158d40c80ce9c5 (مفتوح)
Creates a new instance of ara::com::e2e::ComE2EException 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 · درجة الحرارة: غير قابل للتحكم · الموجّه: d2262a26cd80المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة العضو ThrowAsException لنطاق الأخطاء ara::com::e2e::ComE2EErrorDomain وفقًا لـ [SWS_CM_12509] لتغليف رمز خطأ مُمرر errorCode من النوع ara::core::ErrorCode في استثناء C++ من النوع ara::com::e2e::ComE2EException وإطلاقه بشكل متزامن. لا تمتلك الدالة أية قيمة إرجاع (void) ويتم توفيرها عبر الترويسة ara/com/e2e/e2e_error_domain.h (AUTOSAR_AP_SWS_CommunicationManagement §8.15.3.2.2.3 «ThrowAsException»).
معالجة الأخطاء والشروط الحدية
أُعلن عن الطريقة بـ noexcept(false) وحُددت صراحةً بأنها غير آمنة من الاستثناءات ("not exception safe")، نظرًا لأن مسارها المعتاد يتمثل في طرح الاستثناء. ويحدد [SWS_CORE_10304] شرطًا حديًا جوهريًا من جانب المترجم: إذا كانت استثناءات C++ معطلة في سلسلة أدوات المترجم، فإن هذه الدالة لا تشارك في حل التحميل الزائد. لذلك يجب على المستدعين التأكد من أن معالجة الأخطاء القائمة على الاستثناءات مدعومة ونشطة في النظام الهدف.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني