يغلّف رموز أخطاء Platform Health Management كاستثناء آمن بالنسبة للخيوط لعمليات الوحدة الفاشلة.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9c0b25d6fb92المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يغلّف رموز أخطاء Platform Health Management كاستثناء آمن بالنسبة للخيوط لعمليات الوحدة الفاشلة.
تُستخدم الفئة ara::phm::PhmException في Platform Health Management كنوع استثناء مركزي لتغليف أخطاء الوحدة المحددة وتمريرها إلى المكونات المستدعية. يتم إنشاء حالتها صراحةً عند اكتشاف الخطأ باستخدام ara::core::ErrorCode وتُطرح لتمكين معالجة منظمة للأخطاء عبر كتل catch المطابقة [SWS_PHM_01243]. كقيد أساسي، تم تحديد عملية إنشائها على أنها noexcept، وthread-safe وكذلك exception-safe، مما يستبعد الأخطاء الثانوية عند إنشاء الاستثناء [SWS_PHM_01243]. تفسير: تلتقط جهات الاستدعاء الكائن عادةً بالمرجع لتقييم رمز الخطأ المضمّن بشكل حتمي دون تخصيص ذاكرة ديناميكي. سؤال (مفتوح)
السياق
تعمل الفئة ara::phm::PhmException كنوع استثناء مخصص لـ Platform Health Management (PHM) ضمن AUTOSAR Adaptive Platform. وفقاً لتعريف الفئة، تُشتق الفئة علناً من ara::core::Exception وتمثل حلقة الوصل لإبلاغ حالات الخطأ الخاصة بالوحدة phm إلى مكونات النظام والتطبيق المستدعية عبر آلية استثناءات C++ القياسية. في بنية النظام، تتفاعل الفئة بشكل أساسي بين خدمات PHM التشغيلية، التي تنفذ وظائف المراقبة وتكتشف حالات الخطأ عند انتهاك القواعد، وإجراءات معالجة الأخطاء ذات المستوى الأعلى في التطبيق. ومن خلال التكامل في نموذج معالجة الأخطاء الأساسي لـ ara::core، يتم ضمان إمكانية نقل تقارير الأخطاء الخاصة بالمجال من Platform Health Management ومعالجتها بشكل موحد.
دورة الحياة
تبدأ دورة حياة مثيل من ara::phm::PhmException بالإنشاء الصريح للمثيل في حالة حدوث خطأ. وفقاً لـ [SWS_PHM_01243]، يتم إنشاء الكائن عبر المنشئ PhmException(ara::core::ErrorCode errorCode) مع تضمين الترويسة ara/phm/phm_error_domain.h. تم الإعلان عن الإنشاء كـ noexcept ويتميز بخاصيتي «exception safe» و«thread-safe» [SWS_PHM_01243]. يضمن ذلك أن إنشاء مثيل لكائن الاستثناء يتم بأمان حتى في ظل التزامن العالي، ولا يؤدي في أي وقت إلى إطلاق استثناءات ثانوية غير متوقعة.
يغلف الكائن ara::core::ErrorCode الممرر ويمتلك حالة غير قابلة للتغيير بعد إنشائه. أثناء تفكيك المكدس (Stack-Unwinding)، يتم نقل كائن الاستثناء بواسطة بيئة التشغيل. يحدث التدمير بشكل حتمي عند مغادرة كتلة catch المعالجة وفقاً لقواعد C++ القياسية. تفسير: يُرجح أن يتم إنشاء المثيلات عادةً مباشرةً في تعبير throw على المكدس والتقاطها عبر المرجع (const ara::phm::PhmException&)، بحيث لا يلزم وجود إدارة ديناميكية للذاكرة من جانب المستدعي. سؤال Q-37fc47021a78a0db (مفتوح)
مسار الاستخدام
يبدأ مسار الاستخدام النموذجي عندما تفشل عملية خاضعة للمراقبة من Platform Health Management أو يتم اكتشاف انحراف غير مسموح به في الحالة. تقوم دالة PHM المسببة بعد ذلك بتهيئة كائن استثناء مع رمز الخطأ المقترن وترميه من [SWS_PHM_01243]. ومن جانب المستدعي، يتم تنفيذ مقطع الشيفرة المحمي داخل كتلة try-catch. يُفترض أن التطبيقات تلتقط الاستثناء إما تحديداً كـ ara::phm::PhmException أو بشكل متعدد الأشكال عبر الفئة الأساسية ara::core::Exception. سؤال Q-54638c0dde7d9195 (مفتوح) وفي معالج الاستثناء، يتم استخراج ara::core::ErrorCode المتضمن لتحليل السبب والبدء في التدابير المضادة أو استراتيجيات التشغيل في وضع الطوارئ المناسبة.
مخطط تسلسلي: المسار النموذجي بدءاً من اكتشاف الخطأ في PHM مروراً بإطلاق ara::phm::PhmException ووصولاً إلى التقييم في المعالج. المصادر: [SWS_PHM_01243].
سيناريوهات الأخطاء
يتمثل الجزء المركزي من ara::phm::PhmException في نقل رمز الخطأ في وقت التشغيل. ويُشترط كشرط مسبق لإنشاء الكائن تمرير ara::core::ErrorCode صالح [SWS_PHM_01243]. والشرط اللاحق للاستدعاء هو كائن استثناء مهيأ بالكامل، يوفر رمز الخطأ الممرر دون تغيير للاستعلام.
نظراً لأن المنشئ محدد صراحة كـ noexcept و«exception safe» [SWS_PHM_01243]، فإن حدوث استثناءات أثناء بناء الاستثناء نفسه أمر مستبعد. وبالتالي لا يمكن حدوث فشل في إنشاء الكائن، مما يمنع الإنهاء المبكر عبر std::terminate أثناء تقرير الخطأ. وعلاوة على ذلك، تحمي أمانية الخيوط المحددة («thread-safe») من تلف البيانات عندما تبلغ عدة خيوط في وقت متزامن عن حالات خطأ عبر استثناءات خاصة بها [SWS_PHM_01243]. وبالتالي، فإن سيناريوهات الخطأ لا تخص فئة الاستثناء نفسها، بل تعكس أسباب الخطأ الوظيفية المشفرة في ara::core::ErrorCode المغلف لمجال خطأ PHM.
تم توليد هذا الدليل بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR Adaptive Platform R25-11.
مخطط الفئات UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني