DEENESPTFRRUARHIKOZHNL

فئة ara::per::PerException

[SWS_PER_00354] Upstream: RS_AP_00122, RS_AP_00127

class PerException :            public ara::core::Exception {...};

Exception type thrown by Persistency.

Header-Datei#include "ara/per/per_error_domain.h"
Forwarding-Header#include "ara/per/per_fwd.h"
Scopenamespace ara::per
Basisklasse(n)ara::core::Exception

دليل المستخدممولَّد بالذكاء الاصطناعي

يُستخدم لتغليف أخطاء وحدة الاستمرارية والإشارة إليها استنادًا إلى رمز خطأ محدد.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: abab05ca22f0 المصدر أسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُستخدم لتغليف أخطاء وحدة الاستمرارية والإشارة إليها استنادًا إلى رمز خطأ محدد.

تُستخدم الفئة ara::per::PerException في AUTOSAR Adaptive Platform كنوع استثناء محدد للإشارة إلى أخطاء وحدة الاستمرارية. يتم توفيرها عبر ملف الترويسة ara/per/per_error_domain.h وترث من الفئة الأساسية ara::core::Exception [SWS_PER_00355]. يتم إنشاء الحالة صراحةً عن طريق تمرير ara::core::ErrorCode، والذي يغلّف سبب الخطأ الفعلي. من خلال الإعلان عن المنشئ كـ noexcept، يتم تحديد عملية الإنشاء على أنها آمنة تمامًا من الاستثناءات وكذلك آمنة بالنسبة للخيوط [SWS_PER_00355].

السياق

تعمل الفئة ara::per::PerException كنوع استثناء مركزي ومتخصص للعنقود الوظيفي للاستمرارية (الوحدة per) ضمن AUTOSAR Adaptive Platform في الإصدار R25-11. وفقًا لبنيتها النحوية الرسمية، فإن الفئة مشتقة علنًا من الاستثناء الأساسي العام ara::core::Exception. تتمثل مسؤوليتها الأساسية في الإشارة إلى حالات الأخطاء الجسيمة أو التي لا يمكن معالجتها مباشرة عبر قيم الإرجاع العادية من النظام الفرعي للاستمرارية إلى طبقات التطبيق الأعلى. يتم تعريف الفئة في ملف الترويسة ara/per/per_error_domain.h [SWS_PER_00355]. وفي البنية المعمارية، تتفاعل بشكل وثيق مع بنية معالجة الأخطاء التحتية للمنصة، حيث تنقل كل حالة ara::core::ErrorCode لإجراء تشخيص دقيق للخطأ [SWS_PER_00355].

دورة الحياة

ترتبط دورة حياة كائن ara::per::PerException ارتباطًا مباشرًا باكتشاف خطأ وتمريره ضمن عمليات الاستمرارية. يتم إنشاء الحالة عبر منشئ صريح يستقبل معاملًا واحدًا بالضبط من النوع ara::core::ErrorCode [SWS_PER_00355]. هذا المنشئ مُعلن كـ explicit لمنع تحويلات الأنواع الضمنية من رموز الأخطاء، ومزود بالمواصفة noexcept [SWS_PER_00355]. يضمن ذلك عدم إمكانية حدوث استثناءات أخرى أثناء إنشاء كائن الاستثناء نفسه؛ وبالتالي فإن الإنشاء آمن تمامًا من الاستثناءات (exception safe) [SWS_PER_00355].

فيما يتعلق بالتزامن، تم تحديد إنشاء ara::per::PerException على أنه آمن بالنسبة للخيوط (thread-safe) [SWS_PER_00355]. بعد استدعاء المنشئ، يتم طرح الكائن على طول مكدس الاستدعاءات. تتبع الملكية والتدمير قواعد C++‎ القياسية لمعالجة الاستثناءات: يظل الكائن في مساحة ذاكرة نظام وقت التشغيل حتى تنتهي كتلة catch التي قامت بالالتقاط، ثم يتم تدميره بشكل حتمي.

مسار الاستخدام

ينقسم المسار النموذجي عند استخدام ara::per::PerException إلى الخطوات التالية:

  • اكتشاف الخطأ وتوليد الرمز: تحدد وحدة الاستمرارية حالة غير مسموح بها أو فشل عملية تخزين وتمثل ذلك في ara::core::ErrorCode مطابق.
  • إنشاء الحالة: مع تمرير رمز الخطأ هذا، يتم إنشاء كائن الاستثناء صراحةً عبر PerException(errorCode) [SWS_PER_00355].
  • إطلاق الاستثناء: يطرح النظام الفرعي للاستمرارية حالة الاستثناء من واجهة الدالة المعنية.
  • الالتقاط والتقييم: يلتقط التطبيق المستدعي الكائن على وجه التحديد كـ ara::per::PerException أو بشكل متعدد الأشكال كـ ara::core::Exception أو std::exception. تفسير: يُفترض أن التطبيق يقرأ بعد ذلك ara::core::ErrorCode المغلّف عبر طرق الوصول الموروثة من الفئة الأساسية لبدء إجراءات استكشاف الأخطاء وإصلاحها المستهدفة. سؤال Q-6e48fd125d9938d8 (مفتوح)

سيناريوهات الأخطاء

نظرًا لأن ara::per::PerException تُستخدم لتمثيل الأخطاء، فإن متانة إنشاء الكائن وسلامة معلومات الخطأ تأتيان في المقدمة في سيناريوهات الأخطاء. كشرط مسبق أساسي، يتطلب المنشئ ara::core::ErrorCode صالحًا كمعامل إدخال [SWS_PER_00355]. نظرًا لأن المنشئ مُعلن كـ noexcept، فمن المستبعد حدوث استثناءات ثانوية أثناء الإبلاغ عن الخطأ [SWS_PER_00355]. بالإضافة إلى ذلك، يضمن الأمان المحدد بالنسبة للخيوط عدم حدوث أي تلف في البيانات أو آثار جانبية غير منسقة حتى في حالة وجود أخطاء متوازية في خيوط تنفيذ متعددة [SWS_PER_00355].

يستند هذا الدليل حصريًا إلى بيانات مواصفات AUTOSAR Adaptive Platform الإصدار R25-11.

مخطط الفئات UML

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__per__PerException768 PerException + PerException() nara__core__Exception792 Exception nara__per__PerException768->nara__core__Exception792 nstd__exception10 std::exception nara__core__Exception792->nstd__exception10

المُنشئات والمُتلف

PerException دالة

Construct a new Persistency exception object containing an error code.

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

توثيق الدوال

دالة PerException [SWS_PER_00355] Upstream: RS_AP_00120, RS_AP_00121, RS_AP_00135, RS_AP_00159

explicit PerException (ara::core::ErrorCode errorCode) noexcept;

Construct a new Persistency exception object containing an error code.

Header-Datei#include "ara/per/per_error_domain.h"
Scopeclass ara::per::PerException
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
errorCodeThe error code.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_PER_00355
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#b0cfff60
Content hash
b0cfff60
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Persistency.pdf#nameddest=SWS_PER_00355
Status: valid/unmigrated Version: rel:R25-11#de57fc23 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_PER_00355@rel:R25-11#de57fc23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f5dacf6e2026-09-30
  • R19-11rel:R19-11#606e44052026-10-14
  • R20-11rel:R20-11#bf89ad122026-10-14
  • R21-11rel:R21-11#bf89ad122026-10-14
  • R22-11rel:R22-11#b5d8215d2026-10-14
  • R23-11rel:R23-11#9889dc0a2026-10-14
  • R24-11rel:R24-11#de57fc232026-10-14
  • R25-11rel:R25-11#de57fc232026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill