يُستخدم كنوع استثناء للأخطاء أثناء العمليات غير المتزامنة مع Future وPromise ويغلف رمز خطأ.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4af39887de1dالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يُستخدم كنوع استثناء للأخطاء أثناء العمليات غير المتزامنة مع Future وPromise ويغلف رمز خطأ.
تُستخدم الفئة ara::core::FutureException كنوع استثناء محدد يتم رميه عند حدوث أخطاء مقترنة بـ ara::core::Future وara::core::Promise[SWS_CORE_00412]. وهي تغلف ara::core::ErrorCode ويتم إنشاؤها عبر منشئ فئة صريح [SWS_CORE_00412]. ومن أجل الاستخدام الآمن في البيئات غير المتزامنة والمتزامنة، تم تحديد إنشاء المثيل كـ noexcept، وآمن بالنسبة للخيوط وآمن من الاستثناءات [SWS_CORE_00412].
السياق
تعمل الفئة ara::core::FutureException داخل الوحدة core كنوع استثناء مخصص لأوليات الاتصال والمزامنة غير المتزامنة. ووفقاً للغرض منها، يتم إطلاق نوع الاستثناء هذا بواسطة ara::core::Future وكذلك ara::core::Promise للإشارة إلى حالات الخطأ في سياق العمليات غير المتزامنة للمستدعي. وهيكلياً، تشتق ara::core::FutureException من الفئة الأساسية Exception وتغلف رمز خطأ خاصاً بالمجال.
في سيناريوهات التعاون، تشكل ara::core::FutureException الجسر بين نقطة النهاية غير المتزامنة المنشئة (مثل ara::core::Promise)، ونقطة النهاية المستهلكة (ara::core::Future)، ومعالجة الأخطاء من جانب التطبيق. ويوضح التفاعل بين هذه الأطراف الثلاثة المشاركة الإطار الهيكلي الذي يُسلّم فيه الاستثناء لمعالجة الأخطاء.
يتم إنشاء مثيل ara::core::FutureException صراحةً عبر منشئ الفئة مع تمرير رمز خطأ من النوع ara::core::ErrorCode[SWS_CORE_00412]. ومن خلال التصريح بـ explicit، يتم منع تحويل النوع الضمني من ara::core::ErrorCode. وقد تم تمييز منشئ الفئة كـ noexcept، مما يضمن أن البناء نفسه لا يمكن أن يطلق استثناءات إضافية [SWS_CORE_00412].
فيما يتعلق بأمان التنفيذ، تم تحديد الفئة على أنها آمنة من الاستثناءات (exception safe) [SWS_CORE_00412]. وبالنسبة للتشغيل المتزامن، تحدد المواصفة صراحةً أن البناء آمن بالنسبة للخيوط (thread-safe) [SWS_CORE_00412]. يتيح ذلك للعمليات غير المتزامنة إنشاء مثيل للاستثناء بأمان عبر حدود الخيوط وتمريره إلى المستلمين المنتظرين.
مسار الاستخدام
يشمل مسار الاستخدام النموذجي نشوء خطأ أثناء عملية غير متزامنة وصولاً إلى التقاط الاستثناء بواسطة المستدعي المستهلك. وعادةً ما يتم توفيرها عبر الترويسة ara/core/future_error_domain.h[SWS_CORE_00412].
مخطط تسلسلي: مسار بدءاً من نشوء الخطأ مروراً بإنشاء مثيل ara::core::FutureException وحتى الالتقاط. المصادر: [SWS_CORE_00412]
ينقسم مسار الاستخدام إلى الخطوات التالية:
اكتشاف فشل أو حالة غير مسموح بها أثناء المعالجة غير المتزامنة المقترنة بـ ara::core::Promise أو ara::core::Future.
إنشاء ara::core::FutureException بواسطة منشئ الفئة مع تحديد ara::core::ErrorCode المعني [SWS_CORE_00412].
إرسال الاستثناء إلى الخيط المستهلك، حيث يتم التقاطه ضمن كتلة try-catch وتحليل الخطأ المتضمن.
سيناريوهات الأخطاء
نظراً لأن ara::core::FutureException تمثل في حد ذاتها وسيلة الإشارة إلى الخطأ، فإن سيناريوهات الخطأ تقتصر على شروط نشوئها الخاصة. ومن خلال تمييز منشئ الفئة بـ noexcept، يُضمن عدم إمكانية حدوث أي خطأ في التنفيذ على شكل استثناء ثانوي أثناء إنشاء الكائن [SWS_CORE_00412]. ويُعد الشرط المسبق للبناء هو تمرير كائن صالح من النوع ara::core::ErrorCode كمعامل err[SWS_CORE_00412]. وإذا حدث خطأ أثناء العمل مع ara::core::Future أو ara::core::Promise، فإن الاستثناء يخدم غرض نقل رمز الخطأ هذا دون تغيير إلى الاستدعاءات الأعلى.
يعتمد هذا الدليل على 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 · الأصل الألماني