Encapsulation of an ErrorDomain. An ErrorDomain is the controlling entity for ErrorCode’s error code values, and defines the mapping of such error code values to textual representations. This type constitutes a base class for ErrorDomain implementations. This class is a literal type, and subclasses are strongly advised to be literal types as well.
تُستخدم كفئة أساسية للتحكم في رموز الأخطاء وتعيين قيم الأخطاء الخاصة بالنطاق إلى رسائل نصية.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d0712f7c0a23المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم كفئة أساسية للتحكم في رموز الأخطاء وتعيين قيم الأخطاء الخاصة بالنطاق إلى رسائل نصية.
تُستخدم الفئة ara::core::ErrorDomain كفئة أساسية مجردة للتحكم في قيم الأخطاء وتعيين الرموز الخاصة بالمجال لتمثيلاتها النصية [SWS_CORE_00153]. تُغلِّف الفئات الفرعية رقم تعريف فريدًا على مستوى النظام وتحدد الترجمة إلى نصوص أخطاء غير قابلة للتغيير بالإضافة إلى معالجة الاستثناءات الخاصة بالنوع. لتمكين الاستخدام كـ Literal Type في وقت الترجمة، تحتوي الفئة الأساسية على مُدمِّر محمي غير افتراضي [SWS_CORE_00136]. عمليات النسخ والنقل محظورة تمامًا، بحيث تعمل المثيلات كهويات غير قابلة للتغيير.
السياق
تشكل الفئة ara::core::ErrorDomain الأساس المشترك لإدارة الأخطاء المنظمة في AUTOSAR Adaptive Platform. وهي تعمل كفئة أساسية مجردة لنطاقات أخطاء ملموسة وتتولى مسؤولية التحكم المركزية لقيم الأخطاء التي يتم تغليفها في ara::core::ErrorCode. يمتد كل نطاق عبر مساحة أسماء خاصة به ويحدد تعيين قيم الأخطاء الخاصة بالنطاق من النوع CodeType ([SWS_CORE_00122]) إلى تمثيلات نصية ذات مغزى عبر Message() ([SWS_CORE_00153]). علاوة على ذلك، توفر الفئة الاسم المستعار للنوع IdType ([SWS_CORE_00121]) لمعرّفات النطاق الفريدة على مستوى النظام بالإضافة إلى SupportDataType ([SWS_CORE_00123]) للبيانات الإضافية الخاصة بالشركة المصنعة.
في النظام ككل، يتفاعل ara::core::ErrorDomain مع ثلاثة أطراف رئيسية:
الفئات الفرعية: ترث نطاقات الأخطاء المحددة من ara::core::ErrorDomain وتنفذ دوال الأعضاء الافتراضية الصرفة لأسماء النطاقات ورسائل الأخطاء ومعالجة الاستثناءات.
ara::core::ErrorCode: يمثل قيمة خطأ ملموسة ويفوض تحديد النص الوصفي إلى نطاق الأخطاء المقترن.
العميل / كود التطبيق: يستعلم عن معلومات الحالة عبر رمز الخطأ أو مباشرة من النطاق ([SWS_CORE_00152]) أو يتلقى استثناءات C++ المُثارة ([SWS_CORE_00154]).
يتم إنشاء مثيل ara::core::ErrorDomain بصورة محمية: يمتلك المنشئ إمكانية الرؤية protected ويتوقع معرّف نطاق فريدًا على مستوى النظام من النوع IdType ([SWS_CORE_00135]). نظرًا لأنه تم الإعلان عن المنشئ كـ constexpr وnoexcept، فإن الفئة الأساسية تدعم الإنشاء كـ Literal Type في وقت الترجمة. ويُوصى بشدة للفئات الفرعية بضمان هذه الخاصية كـ Literal Type أيضًا.
تم الإعلان عن المُدمِّر كـ protected وتعريفه كتنفيذ قياسي ([SWS_CORE_00136]). وهو بسيط عن قصد وغير افتراضي، لكي تظل الفئة Literal Type. على الرغم من أن ara::core::ErrorDomain توفر واجهات افتراضية صرفة، إلا أنه لا يلزم وجود تدمير متعدد الأشكال عبر مؤشرات الفئة الأساسية ([SWS_CORE_00136]). من المحتمل أن تُدار مثيلات النطاق الملموسة عمليًا ككائنات طويلة العمر أو ثابتة (تفسير). سؤال Q-a874dd64f6320d21 (مفتوح)
فيما يتعلق بملكيات الحيازة، تظل جميع المؤشرات إلى الأسماء ([SWS_CORE_00152]) ونصوص الأخطاء ([SWS_CORE_00153]) في حيازة فئة النطاق ولا يجوز للعملاء تحريرها. جميع عمليات القراءة والمقارنة آمنة بالنسبة للخيوط ومأمونة من الاستثناءات ([SWS_CORE_00135]، [SWS_CORE_00151]).
مسار الاستخدام
تتم مقارنة مثيلين من ara::core::ErrorDomain كمتساويين فقط إذا تطابقت معرّفات النطاق الخاصة بهما والمحددة عبر Id() ([SWS_CORE_00151]) ([SWS_CORE_00137]، [SWS_CORE_00138]). ينقسم التسلسل النموذجي لتحليل الأخطاء ومعالجة الاستثناءات إلى الخطوات التالية:
تحديد النطاق: يحدد العميل أو كائن الخطأ اسم النطاق كسلسلة منتهية بقيمة خالية عبر Name() ([SWS_CORE_00152]).
تحليل الرسالة: يتم تمرير قيمة الخطأ الرقمية إلى النطاق عبر Message(errorCode) ([SWS_CORE_00153]). يرجع النطاق نص خطأ منتهيًا بقيمة خالية وقائمًا على المؤشرات، ولا يكون أبدًا nullptr.
معالجة الاستثناءات: إذا كان سيتم تحويل رمز خطأ إلى استثناء، يستدعي العميل ThrowAsException(errorCode) ([SWS_CORE_00154]). يقوم النطاق بعد ذلك برمي مثيل مناسب من ara::core::Exception، والذي يغلف رمز الخطأ الممرر.
عند التعامل مع ara::core::ErrorDomain، يجب مراعاة سيناريوهات الأخطاء ومتطلبات الواجهة التالية:
الانتماء الخاطئ إلى النطاق: إذا تم تمرير errorCode لا ينتمي إلى هذا ErrorDomain المحدد إلى الدالة Message()، فإن هذا يمثل الانتهاك المحدد WrongDomainOfAn-ErrorCodeViolation ([SWS_CORE_00153]). يجب على المتصلين التأكد من أن رمز الخطأ يتطابق مع مثيل النطاق.
تعطيل استثناءات C++: الدالة ThrowAsException() ليست مأمونة من الاستثناءات (not exception safe) وترمي استثناءً ([SWS_CORE_00154]). إذا تم تعطيل استثناءات C++ في سلسلة أدوات المترجم، فلا يجوز لهذه الدالة المشاركة في حل التحميل الزائد ([SWS_CORE_00154]).
استبعاد المؤشر الفارغ: لا يجوز لأي من Name() أو Message() إرجاع nullptr مطلقًا ([SWS_CORE_00152]، [SWS_CORE_00153]). إن أي تنفيذ لفئة فرعية ينتج nullptr ينتهك مواصفات الواجهة.
تم إنشاء هذا الدليل بواسطة مساعد تنظيم قائم على الذكاء الاصطناعي استناداً إلى مواصفة AUTOSAR R25-11.
Compare for equality with another ara::core::ErrorDomain instance. Two ara::core::ErrorDomain instances compare equal when their identifiers (returned by Id()) are equal
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 59f6b727c495المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُرجع الدالة العضو Id() للفئة ara::core::ErrorDomain من ملف الترويسة ara/core/error_domain.h المعرّف الفريد لنطاق الخطأ المعني بشكل متزامن ([SWS_CORE_00151]). ولا يتطلب الاستدعاء أي معلمات تمرير ويُرجع معرّف النطاق كقيمة من النوع IdType، مما يضمن تمييزًا فريدًا لنطاقات الأخطاء المختلفة في النظام الكلي.
من المهم لمعالجة الأخطاء أنه تم التصريح عن الدالة كـ noexcept وتصنيفها كـ exception safe ([SWS_CORE_00151]). وبناءً على ذلك، فهي لا تطلق أي استثناءات على الإطلاق ولا تبلغ عن رموز أخطاء أو حالات خاصة. وبفضل خاصيتها كطريقة constexpr، يمكن تقييم المعرّف بالفعل في وقت الترجمة واستخدامه في تعبيرات ثابتة إذا لزم الأمر.
فيما يتعلق بالتزامن وشروط الاستدعاء، تم تحديد Id() كـ thread-safe ([SWS_CORE_00151]). الاستدعاء عديم الحالة وخالٍ من الآثار الجانبية المغيرة، بحيث يجوز لأي عدد من مؤشرات الترابط الوصول إلى نفس النسخة في وقت واحد وبدون آليات قفل خارجية.
في إطار التفاعل داخل بنية النطاق، يشكل المعرّف معيار المقارنة الأساسي: تُعتبر نسختان من ara::core::ErrorDomain متطابقتين وفقًا للمواصفة إذا وفقط إذا تطابقت معرّفاتهما المُرجعة بواسطة Id()، وهو ما يتم تنفيذه مباشرة بواسطة عامل المساواة operator== ([SWS_CORE_00137]).
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي وتستند إلى AUTOSAR Adaptive R25-11.
Return a textual representation of the given errorCode.
The returned pointer remains owned by the ara::core::ErrorDomain sub-class and shall not be freed by clients.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9827a3eb35a8المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة الافتراضية الصرفة Message للفئة الأساسية ara::core::ErrorDomain من ملف الرأس ara/core/error_domain.h للاسترجاع المتزامن لتمثيل نصي لكود خطأ خاص بالنطاق تم تمريره errorCode[SWS_CORE_00153]. تُرجع الدالة مؤشرًا إلى سلسلة نصية منتهية بمحرف صفري (const char *)، وهو مضمون بألا يكون nullptr أبدًا. تظل الذاكرة المشار إليها مملوكة للفئة الفرعية المعنية من ara::core::ErrorDomain، ويُحظر على العملاء المتصلين تحريرها بأي حال من الأحوال [SWS_CORE_00153].
فيما يتعلق بالتزامن والمتانة، تم الإعلان عن الدالة بصفتها noexcept، وتُعتبر آمنة من الاستثناءات (exception safe) ومصممة لتكون آمنة خيطيًا (thread-safe) دون قيود [SWS_CORE_00153]. وفيما يتعلق بحالات الخطأ المحتملة، تم تحديد أن errorCode الذي لا ينحدر من النسخة المعنية من ara::core::ErrorDomain يؤدي إلى انتهاك من النوع WrongDomainOfAnErrorCodeViolation[SWS_CORE_00153].
في إطار التفاعل مع نموذج معالجة الأخطاء في AUTOSAR، تقوم نطاقات أخطاء ملموسة مثل ara::core::FutureErrorDomain[SWS_CORE_00443] وara::core::CoreErrorDomain[SWS_CORE_05243] بإعادة تعريف هذه الدالة لتحويل أكواد الأخطاء الخاصة بالنطاق إلى نصوص رسائل ملموسة. تفسير: التفاعل مع ara::core::ErrorCode::Message()[SWS_CORE_00518]، الذي يُرجع تمثيلاً نصيًا كـ StringView، يعتمد على الأرجح على قيام ErrorCode بتمرير الترجمة إلى الدالة Message لنطاق الأخطاء المرتبط. سؤال Q-f9007fdf5234b6a4 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى متطلبات المواصفات.
This function will determine the appropriate exception type for the given ErrorCode according to [SWS_CORE_10953] and throw it. The thrown exception will contain the given ErrorCode.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f434ab45abb9المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة الافتراضية الصرفة ThrowAsException للفئة ara::core::ErrorDomain لإطلاق رمز خطأ مُمرر بشكل متزامن كاستثناء من النوع ara::core::Exception[SWS_CORE_00154]. تقبل الدالة كمعلمة إدخال مرجعًا إلى const ErrorCode &errorCode ولا تمتلك قيمة إرجاع، حيث ينتهي التنفيذ عبر رمي الاستثناء [SWS_CORE_00154].
فيما يتعلق بسلوك الأخطاء والاستثناءات، يحدد النطاق المعني نوع الاستثناء المطابق لرمز الخطأ المُمرر وفقًا لـ [SWS_CORE_10953] ويرميه [SWS_CORE_00154]. يحتوي الاستثناء المُطلق على ErrorCode المُمرر [SWS_CORE_00154]. صُنفت الدالة على أنها غير آمنة من الاستثناءات (not exception safe) [SWS_CORE_00154].
بالنسبة للتزامن وسياق المترجم، تسري الاشتراطات التالية:
أمان خيوط التنفيذ: تم تحديد استدعاء ThrowAsException على أنه آمن لخيوط التنفيذ (thread-safe) [SWS_CORE_00154].
قيد عند تعطيل استثناءات C++: إذا تم تعطيل استثناءات C++ في سلسلة أدوات المترجم، فلا يجوز للدالة المشاركة في حل التحميل الزائد (overload resolution) وفقًا لـ [SWS_CORE_10304][SWS_CORE_00154].
بالتكامل مع المكونات الأخرى، تشكل الدالة الأساس لإطلاق الاستثناءات عبر كائنات الأخطاء: وهكذا يُفوّض ara::core::ErrorCode::ThrowAsException عملية الرمي إلى النطاق التابع عبر this->Domain().ThrowAsException(*this)[SWS_CORE_00519]. تقوم التطبيقات الفعلية بتجاوز (override) هذه الواجهة لرمي استثناءات محددة مثل CoreException في CoreErrorDomain[SWS_CORE_05244] أو FutureException في FutureErrorDomain[SWS_CORE_00444].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR Adaptive R25-11.
Any exception of the type as defined in [SWS_CORE_10953] containing the given ErrorCode
Hinweise: This function shall not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain. As per [SWS_CORE_10304].
Request a governed re-review of this record. The record is not changed immediately.
This dtor is non-virtual (and trivial) so that this class can be a literal type. While this class has virtual functions, no polymorphic destruction is needed.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني